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