簡體   English   中英

查詢鍵值對列表

[英]Querying a list of key value pair

我創建了一個鍵值對列表,並正在運行查詢以查找ID是否在列表中多次出現。 該ID保留在“值”部分。 我正在使用以下代碼,但不確定如何獲取鍵值對的“值”。 參見行尾:

var result = tableIds
     .GroupBy(v => v.Value)
     .Where(c => c.Count() > 1)
     .Select(x=> new KeyValuePair<string, string>(x.Key, ));

注意:tableIds看起來像這樣:

var tableIds = new List<KeyValuePair<string, string>>();

我基本上想查找“值”中的ID在哪里出現多次。 如果是這樣,我需要存儲鍵和值以供以后使用。 如果id在幾個地方使用不同的密鑰出現,我將需要捕獲所有這些。

除了將值分組而不是對鍵分組外,還有其他問題:您期望一個值,而分組的結果具有多個值。 如果不加入它們,則無法返回KeyValuePair<string, string>的可枚舉。

如果您只想擁有任何值,請使用First()

 .Select(x=> new KeyValuePair<string, string>(x.Key, x.First().Key));

請注意,您x.Key在lambda實際上是v.Value 因此,故意混淆使用Key 如果您打算將鑰匙分組,請使用以下命令:

var result = tableIds
     .GroupBy(v => v.Key)
     .Where(c => c.Count() > 1)
     .Select(x=> new KeyValuePair<string, string>(x.Key, x.First().Value));

嘗試這個

tableIds.GroupBy(v => v.Key).Where(c => c.Count() > 1).SelectMany(c=> c).ToList()

它返回tableId中具有相同鍵的其他KV的每個KV對。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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