我想在每个循环中使用a迭代两个集合。我的第一个想法是:
foreach(a.Concat(b)中的对象o){
o.DoSomething(); }
但问题是,并非所有Collections都支持Concat。那怎么办?
答案 0 :(得分:2)
某些旧版集合类型仅实现IEnumerable
而非IEnumerable<T>
,因此没有Concat
扩展方法。您可以先使用方法Enumerable.Cast<T>
并指定所需的通用类型来解决此问题,然后它将与Concat
一起使用。
答案 1 :(得分:1)
而不是......
foreach (object o in a.Concat(b)) {
o.DoSomething(); }
为什么不呢?
foreach (object o in a) {
o.DoSomething();
}
foreach (object o in b) {
o.DoSomething();
}
如果您真的希望它们都在同一个列表中,请构建一个新列表并在开始处理之前将它们添加到一起。