【问题标题】:Looping array inside list in C#在C#中的列表内循环数组
【发布时间】:2011-02-18 06:35:12
【问题描述】:

我有一个包含多个数组的数组列表。 每个数组有 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#。

我该如何解决这个问题?

【问题讨论】:

  • 你能发布你从代码块 #1 得到的错误信息吗?
  • ...为了他人的利益,请接受您之前问题的部分答案。

标签: c# arrays list loops


【解决方案1】:

您还可以使用 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);
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 2015-11-28
      • 2018-07-03
      • 2021-11-18
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      相关资源
      最近更新 更多