字典obj的linq查询
本文关键字:查询 linq obj 字典 | 更新日期: 2023-09-27 18:30:01
我有一个字典对象Dictionary<SomeEnumType, object>
。
enum SomeEnumType
{
AType=1,
BType=2,
CType=3
}
对象将是CCD_ 2的集合。
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>);
我需要在Dictionary中查询name
并获取对象(A或B)。例如,Name="John"。
所有特殊集合都派生自同一基类型,因此您可以简单地迭代所有集合并将对象强制转换为类型C:
dictObj.Values.OfType<ICollection>()
.SelectMany(collection => collection.OfType<C>())
.Where(itemOfTypeC => itemOfTypeC.Name == "John");