簡體   English   中英

檢查列表中的鍵/值對

[英]Check key / value pair in List

我把列表聲明為

 List<KeyValuePair<string, Int64>> KPList = new List<KeyValuePair<string, long>>(); 

我需要檢查密鑰和值的組合是否已經存在。 我不能使用字典,因為我需要具有鍵和值的唯一組合,以防密鑰具有多個值但作為一對

if(!KPList.Any(p=> p.Key ==keyp && p.Value == valuep))

這有什么問題?

您也可以使用HashSet ,它沒有值,但可以根據需要使用。

HashSet< Tuple<string, long> > KPSet = new HashSet< Tuple<string, long> >(); 
...
if(KPSet.Contains(p))
{
    ...
}

為了方便使用和最佳性能,我建議使用Dictionary和HashSet的組合:

var KPDict = new Dictionary<string, HashSet<long>>();

然后它將為您提供O(1)+ O(1)查找復雜性並輕松檢查值:

if (KPDict.ContainsKey(keyp) && KPDict[keyp].Contains(valuep)) {
    //do some actions
}
else{
    //some logic in case keyp, valuep pair not found in KPDict
}

暫無
暫無

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

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