eri*_*200 9 c# silverlight functional-programming list
我有来自某个来源的物品(来自其他地方):
public class ItemsFromSource{
public ItemsFromSource(string name){
this.SourceName = name;
Items = new List<IItem>();
}
public string SourceName;
public List<IItem> Items;
}
Run Code Online (Sandbox Code Playgroud)
现在在MyClass中,我有来自多个来源的项目(从其他地方填充):
public class MyClass{
public MyClass(){
}
public List<ItemsFromSource> BunchOfItems;
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以一次遍历BunchOfItems中所有ItemsFromSources中的所有Items?即,像:
foreach(IItem i in BunchOfItems.AllItems()){
// do something with i
}
Run Code Online (Sandbox Code Playgroud)
而不是做
foreach(ItemsFromSource ifs in BunchOffItems){
foreach(IItem i in ifs){
//do something with i
}
}
Run Code Online (Sandbox Code Playgroud)
Dar*_*rio 16
那么,您可以使用linq函数SelectMany进行flatmap(创建子列表并将它们压缩成一个)的值:
foreach(var i in BunchOfItems.SelectMany(k => k.Items)) {}
Run Code Online (Sandbox Code Playgroud)
你可以使用SelectMany
:
foreach(IItem i in BunchOffItems.SelectMany(s => s.Items)){
// do something with i
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14449 次 |
最近记录: |