C#List <List >是什么意思?

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

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

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

 var flattened = listOfLists.SelectMany(list => list); foreach (var value in flattened) { Console.WriteLine(value); } 

它是字符串列表的列表。

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

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

如何获取值

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

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

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

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

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

例如

 //Add data in inner list var lstString = new List(); Enumerable.Range(1, 10) .ToList() .ForEach(i => lstString.Add(string.Concat("string", i))); //Add data in outer list List> lstStrings = new List>(); 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)); 

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

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