c# - C# - 在字典中,如何检查键对是否存在

如何检查词典中是否存在键/值,我可以检查一个键或值是否存在,使用ContainsKeyContainsValue,但是我不确定如何检查键/值对是否存在。

谢谢

时间:

如果key不存在,那pair就不存在了,下面举个例子:


// Could be generic of course, but let\'s keep things simple...


public bool ContainsKeyValue(Dictionary<string, int> dictionary,


 string expectedKey, int expectedValue)


{


 int actualValue;


 if (!dictionary.TryGetValue(expectedKey, out actualValue))


 {


 return false;


 }


 return actualValue == expectedValue;


}



或稍微多一点“”“巧妙”(通常要避免...):


public bool ContainsKeyValue(Dictionary<string, int> dictionary,


 string expectedKey, int expectedValue)


{


 int actualValue;


 return dictionary.TryGetValue(expectedKey, out actualValue) &&


 actualValue == expectedValue;


}



字典只支持每个键的一个值,因此:


// key = the key you are looking for


// value = the value you are looking for


YourValueType found;


if(dictionary.TryGetValue(key, out found) && found == value) {


 // key/value pair exists


}




if (myDic.ContainsKey(testKey) && myDic[testKey].Equals(testValue))


 return true;



你可以使用dictionary.TryGetValue进行这个操作。


Dictionary<string, bool> clients = new Dictionary<string, bool>();


 clients.Add("abc", true);


 clients.Add("abc2", true);


 clients.Add("abc3", false);


 clients.Add("abc4", true);



 bool isValid = false;



 if (clients.TryGetValue("abc3", out isValid)==false||isValid == false)


 {


 Console.WriteLine(isValid);


 }


 else


 {


 Console.WriteLine(isValid);


 }



在上面的代码中,如果条件有两个第一个部分的检查键值,第二个用于比较实际值。


First Section{clients.TryGetValue("abc3", out isValid)==false}||Second Section{isValid == false}



像这样


bool exists = dict.ContainsKey("key") ? dict["key"] =="value" : false;




 public bool ContainsKeyValue<TKey, TVal>(Dictionary<TKey, TVal> dictionnaire,


 TKey expectedKey,


 TVal expectedValue) where TVal : IComparable


 {


 TVal actualValue;



 if (!dictionnaire.TryGetValue(expectedKey, out actualValue))


 {


 return false;


 }


 return actualValue.CompareTo(expectedValue) == 0;


 }




var result= YourDictionaryName.TryGetValue(key, out string value) ? YourDictionaryName[key] :"";



如果字典中存在键,则返回键的值,否则返回空白对象。

希望这个代码能帮助你。

请用下列代码检查


var dColList = new Dictionary<string, int>();


if (!dColList.Contains(new KeyValuePair<string, int>(col.Id,col.RowId)))


{}



...