C#List <list <string>&gt;意思?</列表<字符串>

时间:2012-08-22 13:17:18

标签: c#

什么是List<List<string>>以及如何获取数据(如字符串)?

7 个答案:

答案 0 :(得分:16)

这是字符串列表的列表。 “外部”列表的每个元素都是字符串列表。 “扁平化”列表的最简单方法是使用LINQ:

var flattened = listOfLists.SelectMany(list => list);

foreach (var value in flattened)
{
    Console.WriteLine(value);
}

答案 1 :(得分:5)

List<List<string>> lists;
...
foreach (List<string> list in lists)
{
    foreach (string s in list)
    {
        Console.WriteLine(s);
    }
}

答案 2 :(得分:4)

这是字符串列表的列表。

要获得实际的字符串,你需要遍历列表列表,然后对每个字符串列表迭代它以获得字符串。

foreach(var stringList in myList)
{
   foreach(var aString in stringList)
   {
      // do someting with aString
   }
}

答案 3 :(得分:2)

它正是它所读取的是一个列表(字符串列表),您可以使用SelectMany将对象展平为List<string>

List<List<String>> objListOfListString = new List<List<string>>();
//Some code here that fills the above object
List<string> justAListOfString = objListOfListString.SelectMany(s => s).ToList();

答案 4 :(得分:1)

如何获取值

foreach(List<string> CurrentList in DoubleList)
{
  foreach(string TheString in CurrentList)
  {
    //...
  }
}

这是什么意思:嗯,这有点尴尬。正如其他人所说,它是一个字符串列表的列表。它的行为很像双索引数组(矩阵),如string[i][j]。但是,虽然阵列是预先固定的,但列表不是。

答案 5 :(得分:1)

隐含字符串列表。

e.g。

//Add data in inner list
var lstString = new List<string>();
Enumerable.Range(1, 10)
  .ToList()
  .ForEach(i => lstString.Add(string.Concat("string", i)));

//Add data in outer list
List<List<string>> lstStrings = new List<List<string>>();
Enumerable.Range(1, 5)
  .ToList()
  .ForEach(j => lstStrings.Add(lstString));

//To fetch data (using lambda)
lstStrings.ForEach(i => i.ForEach(j => Console.WriteLine(j)));

//使用Linq

获取数据
(from x in lstStrings
    from y in x
    select y).ToList().ForEach(j => Console.WriteLine(j));

答案 6 :(得分:0)

对于List<List<string>>,您可以这样做:

// let's assume listOfListOfString = List<List<string>>
foreach(var list in listOfListOfString)
{
    foreach(var string in list)
    {
        // ....
    }
}