Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从PagedCollectionView获取泛型类型的集合_C# - Fatal编程技术网

C# 从PagedCollectionView获取泛型类型的集合

C# 从PagedCollectionView获取泛型类型的集合,c#,C#,假设我有一个ItemType的PageCollectionView,其中T是项目中定义的某个用户类。我的ItemType类有一个名为IsSelected的属性,我想对该属性执行查询。实际上,这就是我想要做的: var objects = Source.SourceCollection.OfType<ItemType<>>().Where(t => t.IsSelected); var objects=Source.SourceCollection.OfType()

假设我有一个ItemType的PageCollectionView,其中T是项目中定义的某个用户类。我的ItemType类有一个名为IsSelected的属性,我想对该属性执行查询。实际上,这就是我想要做的:

var objects = Source.SourceCollection.OfType<ItemType<>>().Where(t => t.IsSelected);
var objects=Source.SourceCollection.OfType()。其中(t=>t.IsSelected);
当然,这不起作用,因为ItemType泛型需要一个类型。我不能为集合指定实际类型,因为我在这个级别不知道它(另外,我也不想硬编码实际类型,这会破坏使用泛型的目的)。最有可能的是,我可以找到一种使用反射的方法,但我宁愿不考虑可读性。有没有办法做到这一点


谢谢

为什么不定义一个接口

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

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

var objects = Source.SourceCollection
   .OfType<ISelectable>()
   .Where(t => t.IsSelected);
公共接口可选择
{
公共布尔被选为{get;}
}
公共类ItemType:可选择
{
...
}
var objects=Source.SourceCollection
第()类
。式中(t=>t.IsSelected);

<代码> >代码> iTyType < /Cord>工作?我认为运行时会认为这是ItMyType,在这种情况下是不正确的(不确定泛型集合中的逆变类型定义规则)这是真的,简单性是辉煌的关键。谢谢你,理查德!