我需要压缩相同类型的可枚举枚举数。在FP中,它将是标准函数concat
(http://msdn.microsoft.com/en-us/library/ee353462.aspx)。我在C#(Linq)做什么?
答案 0 :(得分:11)
假设你的意思是"而不必指定x => x
":不 - 但你可以写一个:
public static IEnumerable<T> Flatten<T>(this IEnumerable<IEnumerable<T>> source) {
return source.SelectMany(x => x);
}
编辑:但也许无参数 - SelectMany
是一个更清晰的名称,为了保持一致:
public static IEnumerable<T> SelectMany<T>(this IEnumerable<IEnumerable<T>> source) {
return source.SelectMany(x => x);
}
答案 1 :(得分:-2)
IEnumerable.SelectMany(x => x.ToList())
应该为你做这件事。