我正在學習 C# 中的函式式編程。我正在關注示例并有一個磁區定義(如下所示),它不能使用 .Net 5.0 進行編譯。它適用于 6.0。我在發現錯誤時遇到問題,想知道是否有人可以提供幫助。
public static (IEnumerable<T> Passed, IEnumerable<T> Failed) Partition<T>
(
this IEnumerable<T> source,
Func<T, bool> predicate
)
{
var grouped = source.GroupBy(predicate);
return
(
Passed: grouped.Where(g => g.Key).FirstOrDefault(Enumerable.Empty<T>()), //(ERROR)
Failed: grouped.Where(g => !g.Key).FirstOrDefault(Enumerable.Empty<T>()) //(ERROR)
);
}
錯誤是
CS1503 引數 2:無法從 'System.Collections.Generic.IEnumerable' 轉換為 'System.Func<System.Linq.IGrouping<bool, T>, bool>'
如何將其更改為在 .Net 5.0 中作業?
TIA
uj5u.com熱心網友回復:
這
Passed: grouped.Where(g => g.Key).FirstOrDefault()??Enumerable.Empty<T>(), //(ERROR)
Failed: grouped.Where(g => !g.Key).FirstOrDefault()??Enumerable.Empty<T>() //(ERROR)
FirstOrDefault如果沒有條目,將回傳 null,??表示“如果 lhs 為 null,則使用 rhs”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/462718.html
上一篇:錯誤CS1579foreach陳述句無法對“GameObject”型別的變數進行操作
下一篇:無法將方法組轉換為操作
