1

次の2つの辞書があります。

辞書 1:

Dictionary<string, string> dict1 = new Dictionary<string, string>();

request.Add("key1", "value1");

request.Add("key2", "value2");    

request.Add("key3", "value3");

辞書 2 :

Dictionary<string, string> request = new Dictionary<string, string>();

request.Add("key1", "value1");

request.Add("key2", "value2");          

上記の 2 つの辞書を条件付きの LINQ クエリを使用して比較する必要があります。

1) dict2 のすべてのキーは dict1 のキーと一致する必要があります

2)一致したキーは同等の値を持つ必要があります

3) dict2 の key2 の値が空であっても、一致する必要があります

上記のヘルプをいただければ幸いです。前もって感謝します。

よろしく、

サチン

4

1 に答える 1

2

Containsメソッドを使用してカスタムを提供するIEqualityComparerこともできますが、より簡単な方法は次を使用することAny()です。

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)))

emptyとは、空の文字列または空の文字列を意味すると思います。nullしたがって、 を使用しString.IsNullOrEmptyました。だけをチェックしたい場合は、代わりにnull簡単に実行してください。k2.Value == null

于 2013-02-05T12:51:30.057 に答える