C# 在两个foreach循环中访问字符串数组列表
到目前为止,我已经做到了:C# 在两个foreach循环中访问字符串数组列表,c#,C#,到目前为止,我已经做到了: List<string[]> VList foreach (var item in VList) { foreach (var b in item) { Richtextbox 1 = VList[item][b]? } } 列表列表 foreach(可变项列表中的可变项) { foreach(项目中的var b) { Richtextbox 1=V列表[项目][b]? } } 我怎么做才能正确呢?我想让它
List<string[]> VList
foreach (var item in VList)
{
foreach (var b in item)
{
Richtextbox 1 = VList[item][b]?
}
}
列表列表
foreach(可变项列表中的可变项)
{
foreach(项目中的var b)
{
Richtextbox 1=V列表[项目][b]?
}
}
我怎么做才能正确呢?我想让它写下列表中包含的所有内容。你的访问是错误的。您正在迭代元素,因此无需使用数组/索引器访问<代码>[]
List<string[]> VList
foreach (var item in VList)
{
foreach (var b in item)
{
Richtextbox1.text += b
}
}
列表列表
foreach(可变项列表中的可变项)
{
foreach(项目中的var b)
{
Richtextbox1.text+=b
}
}
Aforeach
循环使用1来迭代集合1。在每次迭代中,循环变量(
item
和b
在您的例子中)引用IEnumerator.Current
属性引用的任何内容
方括号[]
用于一种特殊类型的属性,称为。索引器通常用于collection2,以提供对集合中与特定索引耦合的任何内容的引用
当您使用foreach
循环时,您不需要知道集合中元素的索引——事实上,集合甚至不需要支持索引——您已经通过循环变量对它进行了引用
因此,使用嵌套的foreach
循环来处理List
类型变量内的字符串的代码如下所示:
foreach(var stringArray in VList)
{
foreach(var str in stringArray)
{
// do something with str here...
}
}
如果要使用索引器,请改用for
循环:
for(var i=0; i<VList.Count; i++)
{
for(var j=0; j<VList[i].Length; j++)
{
// do something with VList[i][j] here...
}
}
for(var i=0;i可能您想这样做:RichTextbox1.text+=b;您的foreach
循环看起来很好,但我不明白您试图在它们内部执行什么操作。item
将成为字符串[]
s从外部列表中,然后b
将成为数组中的字符串之一;因此(1)您不能使用item
或b
作为索引,因为foreach
已经为您从集合中获取了值;以及(2)您无法将任何这些数据分配给Richtextbox
类型的变量,因为这些不是Richtextbox
值,而是string
值(以及数组和列表)。是的,我想做+=。我如何正确编写此变量?您想用“b”做什么?Hans,我想让它把列表中写的所有内容都打印出来,这样我就可以直接写了。foreach(VList中的var item){foreach(item中的var b){Richtextbox 1=b?}b是字符串,您不能直接将其分配给文本框我想写列表中包含的所有内容,我如何使用double foreach实现这一点我已经完成了编辑?您的意思是RichTextbox1
而不是RichTextbox1
?尽管如此,我给了您一个直接的解决方案,我建议您仔细阅读这些符号的作用。@realme这就是你的意思吗?