簡體   English   中英

從包含列表並按值過濾的字典中獲取鍵(對象)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM