2015-10-05 60 views
0

我有這樣的數據:如何選擇列表字典中的值和鍵?

public class MetaLink 
{ 
    public long LinkNumbering { get; set; } 
    public long TargetPageId { get; set; } 
    public string TargetUrl { get; set; } 
    public LinkType LinkOfType { get; set; } 
} 
public static ConcurrentDictionary<int, List<MetaLink>> Links = new ConcurrentDictionary<int, List<MetaLink>>(); 

我怎樣才能獲得在列表dictionnary值MetaLink對象,並使用TargetUrl財產correspondig dictionnary鍵==「一些價值」

的所有指標也許是可能的Linq,但我沒有找到它。 我這樣做:

var someLinks = Links.Values.Where(kvp => kvp.Any(ml => ml.TargetUrl == "Some value")); 

但我不能讓correspondig dictionnary INT關鍵

+0

你連寫句是真的很難解析。如果你願意舉一個具體的例子來說明樣本的輸入和期望的輸出,理想情況下你也可以嘗試這個方法,那麼幫助會容易得多。 –

回答

1

你靠近 - 你想

var someLinks = Links.Where(kvp => kvp.Value.Any(ml => ml.TargetUrl == "Some value")) 
          // all key.value pairs where the Value contains the target URL 
        .Select(kvp => kvp.Key); //keys for those values 
+0

你是對的!謝謝。 – LeMoussel

0

給出此一試。沒有編譯。

var key = Links.Where(kvp => kvp.Value.Any(ml => ml.TargetUrl == "Some value")).Select(x => x.Key).SingleOrDefault(); 
相關問題