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
}
}

A
foreach
循环使用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这就是你的意思吗?