我找不到我的错误在哪里

本文关键字:在哪里 错误 我的 找不到 | 更新日期: 2023-09-27 18:15:23

我得到两个错误"不能分配给'C',因为它是一个'foreach迭代变量"answers"语法错误,值预期"我真的不知道我的错误在哪里?我可以找些新鲜的眼睛来证明我的不足。

int[] numDictionary = new int[] { 5, 5, 5, 7, 7, 7, 9, 7, 9, 9, 9, 1 };
IDictionary<int, int> count = new SortedDictionary<int, int>();    
//count = new SortedDictionary<int, int>();
//int SortedDictionary = count;
foreach (var c in numDictionary)
{
    if (c > 0)
    {
        count[c] = count.[c] + 1;
    }
}
//return count.ToString();
Console.WriteLine(count);
Console.ReadKey();

我找不到我的错误在哪里

foreach循环中,您不能通过索引访问集合的内容。您可以使用您定义的迭代变量(在本例中为var c)直接寻址集合项。

Console.WriteLine("Contents of numDictionary: ");
foreach (var c in numDictionary)
{
    Console.Write(c);
}

然而,迭代变量不能被修改——只能被读取。如果你想遍历数组并修改内容,可以使用for循环。

int[] numDictionary = new int[] { 5, 5, 5, 7, 7, 7, 9, 7, 9, 9, 9, 1 };
for (int i = 0; i < numDictionary.Length; ++i)
{
    numDictionary[i] = numDictionary[i] + 1;
}

您可以在这篇Microsoft开发网络文章中找到关于foreach语句以及它与for语句的关系的更多信息。