2013-07-30 7 views
5

Jeśli mam listę List<KeyValuePair<string,string>> np.Jak mogę oddzielić moją listę par klucz/wartość

["abc","123"] 
["asc","123"] 
["asdgf","123"] 
["abc","123"] 

Jak mogę rozdzielić tę listę?

+3

W odróżnieniu od klucza, przez wartość lub przez oba –

+1

użytkowania Słownik 'Słownik' zamiast' List'? – Khan

+1

Słownik nie jest dobrą odpowiedzią: nie odróżnia się od wartości lub przez ORAZ daje zduplikowane kluczowe wyjątki przed Wyróżnij go ;-) –

Odpowiedz

12

Wyraźny zarówno Key i Value:

var results = source.Distinct().ToList(); 

Wyraźny przez Key lub Value (wystarczy zmienić właściwość na GroupBy rozmowy:

var results = source.GroupBy(x => x.Key).Select(g => g.First()).ToList(); 
0

Powinieneś użyć zestawu (obiektów pary), jeśli chcesz mieć oddzielne pary lub mapę/słownik, jeśli chcesz mieć różne klucze.

+0

.NET. Czy masz właściwą kolekcję zestawów? –

+2

'ISet ' jest interfejsem, a 'HashSet ' jest implementacją. Działa zgodnie z oczekiwaniami. – Jacob

+0

http://msdn.microsoft.com/en-us/library/bb359438.aspx .net3.5 + does – Robadob

Powiązane problemy