我创建一个扩展方法:Func键<T, TResult>接入参数
public static IEnumerable<T> GroupAndSortBy<T>(this IEnumerable<T> source)
我想从任何收藏此方法:
myCollection.GroupAndSortBy(x => x.MyParam)
如果MyParam必须是一个字符串,因为我想在字母分组的方法中使用它。
这样做,我的方法签名改成这样:
public static IEnumerable<T> GroupAndSortBy<T>(this IEnumerable<T> source, Func<T, string> key)
的问题是,现在我不能访问我传递的参数实际的字符串,但我想这样做像这样:
source.GroupBy(key.ToLower().FirstOrDefault());
你能帮我吗?
为什么你需要'.FirstOrDefault()'? –
试试这个'source.GroupBy(x => key(x).ToLower())' –
你为什么期望结果是'IEnumerable'?如果将项目组合在一起,那么结果将是一组组,而不是一组单个项目。你能解释你的目标吗? –