我显然只是遗漏了这件事。 我有以下内容:
List<string> stringList = new List<string>();
然后我用一些数据填写它并执行以下操作:
foreach (List<string> results in stringList)
但它错误声称它“无法从类型string
转换为System.Generic.Collections.List<string>
类型”......但两者都属于List<string>
类型,那么断开连接在哪里?我确信必须有一些非常简单的东西,我显然做错了,但对于我的生活,我找不到它。
答案 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>
),所以你不要我不得不担心找出你的元素是什么类型。