C# C# Objects Loops and Final Touches Foreach Loops

Return the average length of the tongues of the frogs in the array. Use a foreach loop as part of your solution.

its telling me "int cannot be used in a foreach statement" but i was using a double

FrogStats.cs
namespace Treehouse.CodeChallenges
{
    class FrogStats
    {
        public static double GetAverageTongueLength(Frog[] frogs)
          {
            double total = 0;

            foreach(TongueLength tongueLength in frogs.Length)
            {
                total+=frogs[i].TongueLength;
            }
            return total / frogs.Length;
        }
    }
}
Frog.cs
namespace Treehouse.CodeChallenges
{
    public class Frog
    {
        public int TongueLength { get; }

        public Frog(int tongueLength)
        {
            TongueLength = tongueLength;
        }
    }
}

1 Answer

Steven Parker
Steven Parker
177,844 Points

That message is referring to frogs.Length.

That's one of a few issues:

  • frogs.Length is an int, not a collection that can be used to iterate through
  • TongueLength is not a variable type or class name
  • there is no variable i defined
  • a foreach loop works directly with elements of the collection, no indexing is needed

And while it's not an error, "tongueLength" is an odd name for a variable that will represent an individual Frog.