自定义比较词典linq
我有两本字典如下: 词典1:自定义比较词典linq,linq,dictionary,Linq,Dictionary,我有两本字典如下: 词典1: Dictionary<string, string> dict1 = new Dictionary<string, string>(); request.Add("key1", "value1"); request.Add("key2", "value2"); request.Add("key3", "value3"); Dictionary dict1=新字典(); 请求。添加(“键1”、“值1”); 请求。添加(“键2”、
Dictionary<string, string> dict1 = new Dictionary<string, string>();
request.Add("key1", "value1");
request.Add("key2", "value2");
request.Add("key3", "value3");
Dictionary dict1=新字典();
请求。添加(“键1”、“值1”);
请求。添加(“键2”、“值2”);
请求。添加(“键3”、“值3”);
词典2:
Dictionary<string, string> request = new Dictionary<string, string>();
request.Add("key1", "value1");
request.Add("key2", "value2");
字典请求=新建字典();
请求。添加(“键1”、“值1”);
请求。添加(“键2”、“值2”);
我需要使用带条件的LINQ查询比较以上两个字典:
1) dict2中的所有键应与dict1中的键匹配
2) 匹配的键应具有等效值
3) 即使dict2中key2的值为空,它也应该匹配
感谢您的帮助。提前谢谢
问候,
Sachin您可以使用,但更简单的方法是使用:
var dict1=新字典
{
{“key1”,“value1”},
{“key2”,“value2”},
{“key3”,“value3”}
};
var dict2=新字典
{
{“key1”,“value1”},
{“key2”,“value2”}
};
全部(k2=>
dict1.Any(k1=>k1.Key==k2.Key&&
(String.IsNullOrEmpty(k2.Value)| | k1.Value==k2.Value)))
我猜空的意思是null
或空字符串,因此我使用了。如果只想检查null
,请执行一个简单的k2.Value==null
var dict1 = new Dictionary<string, string>
{
{"key1", "value1"},
{"key2", "value2"},
{"key3", "value3"}
};
var dict2 = new Dictionary<string, string>
{
{"key1", "value1"},
{"key2", "value2"}
};
dict2.All(k2 =>
dict1.Any(k1 => k1.Key == k2.Key &&
(String.IsNullOrEmpty(k2.Value) || k1.Value == k2.Value)))