2012-05-14 20 views
5

Hi ortak anahtarları ve ortak değerleri alın İki sözlükte bulunan PatternMetaData. Bu yol bulmak: Böyle operasyon yapmak amacıylaÖnümüzdeki türden iki sözlükleri olan iki sözlükler

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

Sonra kurulan tuşlarının ortak değerlerini bulmalıyız ...

(vb linq lambda) hızlı yolu var mı

Teşekkürler

+0

Sadece eşleşen anahtarlar veya eşleşen anahtar/değerler mi arıyorsunuz? İlgili soru: http://stackoverflow.com/questions/3804367/testing-for-equality-between-dictionaries-in-c-sharp – deepee1

cevap

9

Buna kesişme denir. Eğer o zaman sadece

var equalDictionarys = dictionary1.Intersect(dictionary2); 
+0

Kesişen sözlükler 'u verilen iki sözlükten gelen anahtarlar ve değerler ile almanın bir yolu yok mu? – AlexBerd

+0

@AlexanderBerdichevsky Sadece açıklığa kavuşturmak için .. Hem anahtar hem de değerlerin eşleştiği tüm diksiyonları almak ister misiniz? – AlanFoster

+0

İçindeki iki anahtardan birini oluşturmak istiyorum. Bu anahtarın ortak anahtarları ve ortak değerleri – AlexBerd

1

Ayrıca bütün sözlük öğeleri alabilirsiniz hem sözlüklerde içinde bulunan eşit anahtarlar ve değerler bulmak istiyorsanız

Sen

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

kullanarak anahtarları alabileceğiniz Ortak anahtarlar:

var commonDictionaryItems = Dic1.Where(d => Dic2.ContainsKey(d.Key)).ToList(); 
İlgili konular