C#中的List<List<string>>是什么意思?

3
< p >什么是List<List<string>>,怎样获取数据(作为字符串)?


意思是外部List的每个索引都包含一个字符串列表。即 List[0] = List<string>。 - Muhammad Umar
1
为什么这个被踩了?对我很有帮助啊。 - rbsdca
8个回答

20

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

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

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

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

7

这是一个字符串列表的列表。

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

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

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();

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));

1

如何获取数值:

foreach(List<string> CurrentList in DoubleList)
{
  foreach(string TheString in CurrentList)
  {
    //...
  }
}
它的意思是什么:嗯,有点尴尬。正如其他人所说,它是一个字符串列表的列表。它的行为很像一个双索引数组(一个矩阵),比如string[i][j]。然而,虽然数组是预先固定的,但列表不是。

0
class Program
{
static void Main(string[] args)
{
List<string> CountryOne = new List<string> { "City1", "City2", "City3" };

List<string> CountryTwo = new List<string> { "City4", "City5", "City6" };

List<string> CountryThree = new List<string> { "City7", "City8", "City9" };

List<List<string>> countries = new List<List<string>>();

countries.Add(CountryOne);
countries.Add(CountryTwo);
countries.Add(CountryThree);

Console.WriteLine("Few cities from each country");
Console.WriteLine();
foreach (List<string> country in countries)
{
    foreach(string city in country)
    {
        Console.WriteLine(city);
    }

    Console.WriteLine("----------------------");
}
}
}

0

对于一个 List<List<string>>,你可以这样做:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接