字典包含同一项目中的键和值
本文关键字:键和值 项目 包含同 字典 | 更新日期: 2023-09-27 17:55:22
我需要检查我的字典是否在同一行包含两个值。 例如:
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"))