以下带有布尔参数的代码运行良好:
public List<T> SearchByStatus(bool status, List<T> list)
{
return (List<T>)list.Where(_item => _item.Executed == status);
}
但是如果我想使用这样的东西
public List<T> SearchByCodeType(ECodes codeType, List<T> list)
{
return (List<T>)list.Where(_item => _item.CodeType == codeType);
}
,IDE 会抛出一个错误Func<T, int, bool>
,说不接受 1 个参数。我研究了一下,发现了这个。如果我现在添加第二个参数,可以说
public List<T> SearchByCodeType(ECodes codeType, List<T> list)
{
return (List<T>)list.Where((_item, _index) => _item.CodeType == codeType);
}
它Func<T, bool>
说不接受 2 个参数。
消息本身是正确的,但我不明白为什么它假设我想在第一种情况下使用 Where 的重载版本,而在第二种情况下使用非重载版本......我做错了什么吗?
PS:使用的 ECodes-type 定义为
public enum ECodes : int
{
....
}
这会导致问题吗?