我有一个字典对象Dictionary<SomeEnumType, object>
。
enum SomeEnumType
{
AType=1,
BType=2,
CType=3
}
对象将是A,B
的集合。
public class C {public string Name {get;set;}}
public class A: C { public string prop1 {get;set;}}
public class B: C { public string prop2 {get;set;}}
Dictionary对象将具有如下条目:
Dictionary<SomeEnumType, object> dicobj= new Dictionary<SomeEnumType, object>();
dicobj.Add(SomeEnumType.AType, List<A>);
dicobj.Add(SomeEnumType.BType, List<B>);
我需要查询字典name
并获取对象(A或B)。对于前者NAME = “约翰”。
答案 0 :(得分:0)
所有特殊集合都源自相同的基类型,因此您可以简单地遍历所有集合并将对象转换为C类型:
dictObj.Values.OfType<ICollection>()
.SelectMany(collection => collection.OfType<C>())
.Where(itemOfTypeC => itemOfTypeC.Name == "John");