如何迭代两个集合?

时间:2011-02-11 16:23:09

标签: c# wpf algorithm loops

我想在每个循环中使用a迭代两个集合。我的第一个想法是:

  

foreach(a.Concat(b)中的对象o){
  o.DoSomething(); }

但问题是,并非所有Collections都支持Concat。那怎么办?

2 个答案:

答案 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();
}

如果您真的希望它们都在同一个列表中,请构建一个新列表并在开始处理之前将它们添加到一起。