1

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

4

7 回答 7

20

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

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

foreach (var value in flattened)
{
    Console.WriteLine(value);
}
于 2012-08-22T13:19:17.523 回答
10
List<List<string>> lists;
...
foreach (List<string> list in lists)
{
    foreach (string s in list)
    {
        Console.WriteLine(s);
    }
}
于 2012-08-22T13:21:03.703 回答
6

它是字符串列表的列表。

要获得实际的字符串,您需要遍历列表列表,然后对于每个字符串列表,遍历它以获取字符串。

foreach(var stringList in myList)
{
   foreach(var aString in stringList)
   {
      // do someting with aString
   }
}
于 2012-08-22T13:18:32.450 回答
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();
于 2012-08-22T13:20:30.520 回答
2

它意味着字符串列表列表。

例如

//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));
于 2012-08-22T17:24:02.493 回答
1

如何获取值

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

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

于 2012-08-22T13:19:46.227 回答
0

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

// let's assume listOfListOfString = List<List<string>>
foreach(var list in listOfListOfString)
{
    foreach(var string in list)
    {
        // ....
    }
}
于 2012-08-22T13:20:03.673 回答