sdr*_*sdr 8 c# ienumerable foreach
我有3个(编辑)互相排斥的 IEnumerables,我想迭代.我想做这样的事情:
IEnumerable<Car> redCars = GetRedCars();
IEnumerable<Car> greenCars = GetGreenCars();
IEnumerable<Car> blueCars = GetBlueCars();
foreach(Car c in (redCars + greenCars + blueCars)) {
c.DoSomething();
}
...
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的方法是:
...
List<Car> allCars = new List();
allCars.AddRange(redCars);
allCars.AddRange(greenCars);
allCars.AddRange(blueCars);
foreach(car in allCars) {
...
}
...
Run Code Online (Sandbox Code Playgroud)
有没有更简洁的方法来做到这一点?看起来像组合IEnumberables应该是微不足道的.
Mar*_*ell 20
使用LINQ:
foreach(car in redCars.Concat(greenCars).Concat(blueCars)) {
//...
}
Run Code Online (Sandbox Code Playgroud)
对于信息,这里的差异之间Union
和Concat
是Union
会做额外的工作来保证唯一性; 因此,如果您不期望重复(或者:不介意它们),那么Concat
更快.
归档时间: |
|
查看次数: |
1141 次 |
最近记录: |