我有一个包含多个数组的数组列表。 每个数组都有2个索引。 首先,我想循环列表。然后我想在列表中循环数组。
我该怎么做?
我尝试使用这种方式,但它不起作用:
1. foreach (string[] s in ArrangList1)
2. {
3. int freq1 = int.Parse(s[1]);
4. foreach (string[] s1 in ArrangList)
5. {
6. int freq2 = int.Parse(s1[1]);
7. if (freq1 < freq2)
8. {
9. backup = s;
10. index1 = ArrangList1.IndexOf(s);
11. index2 = ArrangList.IndexOf(s1);
12. ArrangList[index1] = s1;
13. ArrangList[index2] = s;
14. }
15. backup = null;
16. }
17. }
它在第4行给出了错误。
我尝试使用其他方式进行循环,但我不知道如何继续。
for (int i = 0; i < ArrangList1.Count; i++)
{
for (int j = 0; j < ArrangList1[i].Length; j++)
{
ArrangList1[i][1];
}
}
我使用C#。
如何解决此问题?
答案 0 :(得分:3)
第4行中的错误可能是由于使用ArrangList的拼写错误。我认为你只定义了ArrangList1。无论如何,逻辑是错误的。如果你有一个包含数组的列表,你想在列表上做一个foreach,然后在每个列表项(这是一个数组)上做一个foreach。
目前还不清楚你的类型是什么,所以我假设ArrangList是一个字符串数组列表。
foreach(string[] s in ArrangList1)
{
foreach(string innerS in s)
{
//now you have your innerString
Console.WriteLine(innerS);
}
}
在你的第二个例子中,
你也有错字......
for (int i = 0; i < ArrangList1.Count; i++)
{
for (int j = 0; j < ArrangList1[i].Length; j++)
{
ArrangList1[i][1]; //the 1 here should be j
}
}
答案 1 :(得分:0)
您还可以使用LINQ和一个foreach循环:
// assuming ArrangList1 is List<string[]>
var query = from a in ArrangList1
from b in a
select b;
foreach (String s in query)
{
System.Console.Writeline(s);
}