簡體   English   中英

字典在同一項目中包含鍵和值

[英]Dictionary ContainsKey & Value in same Item

我需要檢查我的字典是否在同一行上包含兩個值。 例如:

Dictionary<string, string> ServiceLIST = new Dictionary<string, string>();
ServiceLIST.add(ServiceName,ServiceStatus)
//if (ServiceLIST.ContainsKey("testingName") & (ServiceLIST.ContainsKey("testingStatus"))

如何替換if語句來檢查字典中同一項目上是否同時存在“ testingName”和&“ testingStatus”?

怎么樣:

if(ServiceLIST.ContainsKey("testingName") 
 && ServiceLIST["testingName"] == "testingStatus")

paqogomez的解決方案有效,但是它需要您兩次遍歷字典-一次檢查值是否在字典中,另一次查找它所映射的內容。 通常,這不是什么大問題,但是如果字典很大,或者您需要多次執行此操作,則很浪費。

MaMazav的解決方案也不錯,但是如前所述,它的可讀性較差,並且需要使用KeyValuePairs(我個人不喜歡)。

我認為最好的解決方案是:

string mappedValue;
if(ServiceLIST.TryGetValue("testingName", out mappedValue) && mappedValue == "testingValue")
{
    ...
}

保持可讀性和性能。

這是MaMazav提供的小提琴: http ://dotnetfiddle.net/2UG0QH

另外,不確定這是否是實際的代碼示例,但您可能應該使用C#編碼約定進行變量命名:)

if (ServiceLIST.Contains(new KeyValuePair<string, string>(
    "testingName", "testingStatus")))

您可以使用LINQ

if(ServiceLIST.Any(x => x.Key == "testingName" && x.Value == "testingStatus"))

暫無
暫無

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

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