我創建一個擴展方法: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'?如果將項目組合在一起,那麼結果將是一組組,而不是一組單個項目。你能解釋你的目標嗎? –