3

スクリーンショット

誰かがこの問題に遭遇しましたか? メソッド Enumerable.Where の同じ候補が 2 つあります。また、Func'2 と Func'3 は何ですか?

列挙可能なものをフィルタリングしようとすると

var subItems = itemsToShow.Where(item => item.Visible);

エラーがあります:

メソッド 'Where(ラムダ式)' を解決できません。候補は

System.Collection.Generic.IEnumerable<T> Where<T>(this System.Collection.Generic.IEnumerable<T>, System.Func'2) (in calss Enumerable)
System.Collection.Generic.IEnumerable<T> Where<T>(this System.Collection.Generic.IEnumerable<T>, System.Func'3) (in calss Enumerable)

.Net 3.5では、これは完璧に機能します

4

5 に答える 5

3

MSDNをざっと見てみると、実際には 2 つのオーバーロードがあることがわかります。

1 つは述語に基づいてフィルタリングするだけで、2 番目のオーバーロードは列挙内の項目のインデックスも考慮します。

于 2012-08-27T09:12:40.173 に答える
0

Func'3そしてFunc'2、それが2と3の型パラメーターを持つジェネリッククラスであることを意味します。

最初は、以前に定義したタイプFunc<T, bool>がどこにあるかを示していると思います。TFunc<T, int, bool>同じプラスインデクサー。

Func<T, int, bool>-これは、型の2つの引数を受け入れTintを返す述語ですbool

于 2012-08-27T09:12:54.993 に答える
-1

IQueryable にキャストしてみてください。そのように: itemsToShow.AsQueryable()

于 2014-05-28T21:43:27.840 に答える