8

こんにちは、次のタイプの辞書が 2 つあります。

SortedDictionary<string, ClusterPatternCommonMetadata> PatternMetaData { get; set; }

ClusterPatternCommonMetadata オブジェクトは次のようになります。

int ChunkQuantity { get; set; }

SortedDictionary<int, int> ChunkOccurrences { get; set; }

まず、2 つの辞書に存在する PatternMetaData のキーを見つける方法が必要です。私はこのように見つけます:

List<string> commonKeysString=
            vector.PatternMetaData.Keys.Intersect(currentFindingVector.PatternMetaData.Keys)

次に、作成されたキーの共通の値を見つける必要があります...

そのような操作を行うための高速な方法 (ラムダ、linq など) はありますか

ありがとう

4

2 に答える 2

15

これを交差点といいます。

を使用してキーを取得できます

var data = dictionary1.Keys.Intersect(dictionary2.Keys)

両方の辞書に含まれる等しいキーと値を見つけたい場合は、

var equalDictionarys = dictionary1.Intersect(dictionary2);
于 2012-05-14T15:54:02.370 に答える
5

共通のキーを持つ Dictionary アイテム全体を取得することもできます。

var commonDictionaryItems = Dic1.Where(d => Dic2.ContainsKey(d.Key)).ToList();
于 2012-06-19T15:14:35.443 に答える