渡したラムダ式に基づいてアイテムのフィルターされたリストを取得する関数があります。以下は、私が行っていることの例です。リストはmyBaseのObservableCollectionであり、渡すフィルターは次のようになります。t => t.Data.Any()
現時点では、「filter」を上記のラムダに置き換えると機能しますが、それを渡してローカル変数filterを使用すると、「使用法から推測できません」などのコンパイルエラーが発生します。型引数を明示的に指定してみてください。」</p>
protected IEnumerable<myBase> GetByFilter(Expression<Func<myBase, bool>> filter)
{
IEnumerable<myBase> itemlList = _items.Where(filter).ToList();
return itemlList ;
}
ここで何が欠けていますか?
編集 - - - - - - - - - -
渡されたラムダに基づいて元のリストのサブセットを取得しようとしています。可能であれば、IEnumerableではなく別のobservableCollectionを返すラムダ行を回避できる可能性がありますか?
編集 - - - - - - - - - -
Ruslanの助けを借りて、私は自分の問題を修正しました。私のコードはコンパイルされ、次のようになります。
protected IEnumerable<myBase> GetByFilter(Func<myBase, bool> filter)
{
IEnumerable<myBase> itemlList = _items.Where(filter).ToList();
return itemlList ;
}
「t=>t.Data.Any()」のようなフィルターを渡して、すべてのアイテムなどを取得できます。フィルターパラメーターから「Expression」を削除する必要がありました。