【发布时间】:2015-01-19 08:09:00
【问题描述】:
我正在尝试实现一种方法来连接多个Lists,例如
List<string> l1 = new List<string> { "1", "2" };
List<string> l2 = new List<string> { "1", "2" };
List<string> l3 = new List<string> { "1", "2" };
var result = Concatenate(l1, l2, l3);
但我的方法不起作用:
public static IEnumerable<T> Concatenate<T>(params IEnumerable<T> List)
{
var temp = List.First();
for (int i = 1; i < List.Count(); i++)
{
temp = Enumerable.Concat(temp, List.ElementAt(i));
}
return temp;
}
【问题讨论】:
-
每个周期调用 IEnumerable.Count() 有点浪费。调用一次并将其存储在变量中,或者更好的是,使用 foreach 循环:
var Temp = List.First(); foreach (IEnumerable<T> sequence in List.Skip(1)) Temp = Enumerable.Concat(sequence);。
标签: c# concatenation ienumerable