[英]Casting A Collection of Collections - C#
我有一個返回IEnumerable<IEnumerable<string>>
的函數。 我想在基本IEnumerable
的基礎上使用此函數,並將其分配給List<List<string>>
。 如果我只有一個維度(即一個集合),這將很容易,並且可以通過使用ToList()
方法來解決-但是如何為IEnumerable<IEnumberable<string>>
做到這一點而又不遍歷每個項目?
例如(來自MSDN)
PetOwner[] petOwners =
{ new PetOwner { Name="Higa, Sidney",
Pets = new List<string>{ "Scruffy", "Sam" } },
new PetOwner { Name="Ashkenazi, Ronen",
Pets = new List<string>{ "Walker", "Sugar" } },
new PetOwner { Name="Price, Vernette",
Pets = new List<string>{ "Scratches", "Diesel" } } };
// Query using SelectMany().
IEnumerable<string> query1 = petOwners.SelectMany(petOwner => petOwner.Pets);
可能是有關此主題的最佳資源(J.Skeet):
這是另一個與您的問題類似的List<List<string>>
示例:
var lists = new List<List<string>>();
lists.Add(new List<String>(new[] { "A", "B", "C" }));
lists.Add(new List<String>(new[] { "D", "E", "F", "G" }));
lists.Add(new List<String>(new[] { "H", "I", "J", "K", "L" }));
var all = lists.SelectMany(i => i);
String allLetters= String.Format("All letters: {0}",String.Join(",",all));
我假設您有某種IEnumerable<IEnumerable<T>>
。 您可以使用類似以下內容的方法將其展平: YourList.SelectMany(x => x)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.