是否有Linq方法.SelectMany(x => x)?

时间:2014-10-15 10:01:58

标签: c# linq

我需要压缩相同类型的可枚举枚举数。在FP中,它将是标准函数concathttp://msdn.microsoft.com/en-us/library/ee353462.aspx)。我在C#(Linq)做什么?

2 个答案:

答案 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())应该为你做这件事。