0

ItemType の PageCollectionView があるとします。ここで、T はプロジェクトで定義されたユーザー クラスです。私の ItemType クラスには、クエリを実行したい IsSelected というプロパティがあります。事実上、これは私がやりたいことです:

var objects = Source.SourceCollection.OfType<ItemType<>>().Where(t => t.IsSelected);

もちろん、ItemType ジェネリックには型が必要なため、これは機能しません。このレベルではわからないため、コレクションの実際の型を指定することはできません (さらに、とにかく実際の型をハードコーディングしたくないため、ジェネリックを持つ目的が無効になります)。ほとんどの場合、リフレクションを使用して方法を見つけることができましたが、読みやすさは避けたいと思います。これを行う方法はありますか?

ありがとう!

4

1 に答える 1

0

インターフェイスを定義しないのはなぜですか?

public interface ISelectable
{
   pubilc bool IsSelected { get; }
}

public class ItemType<T> : ISelectable
{
   ...
}

var objects = Source.SourceCollection
   .OfType<ISelectable>()
   .Where(t => t.IsSelected);
于 2012-11-28T21:10:12.423 に答える