[英]Get keys (objects) from a dictionary that contains list and filtered by values
我想返回包含B類型對象的鍵(A類型)列表。B類型對象具有將用於比較的屬性,因此無法使用Contains。 我正在嘗試獲取A的列表
Dictionary<A, List<B>> objAwithB = new Dictionary<A, List<B>>();
B objB = new B();
objB.prop1 = "AAA"
objAwithB.Where(g => g.Value.Where(a=>a.Equals(objB.prop1))).Select(g => g.Key).ToList();
但這不起作用
我想你想要這樣的東西:
var myKeys = objAwithB.Where(
kvp => kvp.Value.Any(v => v.prop1.Equals(objB.prop1) )
).Select(kvp => kvp.Key);
看起來像您想要的:
objAwithB.Where(g => g.Value.Any(b=>b.prop1.Equals(objB.prop1)))
.Select(g => g.Key).ToList();
Any()應該可以解決問題:
Dictionary<A, List<B>> objAwithB = new Dictionary<A, List<B>>();
B objB = new B();
objB.Prop1 = "AAA";
objAwithB.Where(g => g.Value.Any(x => x.Prop1 == objB.Prop1))
.Select(g => g.Key)
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.