Foreach变量错误

时间:2012-12-05 21:15:03

标签: c#

我显然只是遗漏了这件事。 我有以下内容:

   List<string> stringList = new List<string>();

然后我用一些数据填写它并执行以下操作:

   foreach (List<string> results in stringList)

但它错误声称它“无法从类型string转换为System.Generic.Collections.List<string>类型”......但两者都属于List<string>类型,那么断开连接在哪里?我确信必须有一些非常简单的东西,我显然做错了,但对于我的生活,我找不到它。

5 个答案:

答案 0 :(得分:11)

您的foreach应该是:

foreach(string s in stringList)

在您的代码中,您正在检查stringList中的字符串列表,而不是列表中的字符串。

答案 1 :(得分:3)

for-each-iteration一次为您提供一个项目,因此类型应为string,而不是List<string>

foreach (string result in stringList)

答案 2 :(得分:3)

在C#中使用foreach循环时,您正在迭代集合类型并使用该集合中的单个值重复执行操作。因此,对于通用集合类型,您需要foreach循环中的单个项类型。

List<string> stringList = new List<string>();
foreach (string stringItem in stringList)
{
    // do something
}

答案 3 :(得分:3)

当您foreach超过列表时,您将枚举列表中的元素。 stringList包含字符串,因此您需要执行以下操作:

foreach (string s in stringList)

答案 4 :(得分:3)

stringList的类型为List<string>

这意味着列表stringList的每个元素都将是string。 因此,当您执行foreach (element in stringList)时,元素应为string

解决问题的最佳方法是将List<string>替换为var。如果您始终在var语句中使用foreach,它会自动考虑正确的类型(在这种情况下为string而不是List<string>),所以你不要我不得不担心找出你的元素是什么类型。