ブール値パラメーターを使用した次のコードは、非常にうまく機能します。
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 つのパラメーターを受け入れないというエラーをスローします。私は少し調べて、たとえばこれを見つけました。ここで 2 番目のパラメーターを追加すると、
public List<T> SearchByCodeType(ECodes codeType, List<T> list)
{
return (List<T>)list.Where((_item, _index) => _item.CodeType == codeType);
}
Func<T, bool>
2つのパラメーターを受け入れないと言っています。
メッセージ自体は正しいですが、最初のケースではオーバーロードされたバージョンの Where を使用し、2 番目のケースではオーバーロードされていないバージョンを使用したいと想定している理由がわかりません...何か間違ったことをしていますか?
PS: 使用される ECodes タイプは次のように定義されます。
public enum ECodes : int
{
....
}
それが問題を引き起こす可能性がありますか?