2013-07-30 7 views
5

Se ho una lista List<KeyValuePair<string,string>> ex.Come distinguere il mio elenco di coppie chiave/valore

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

come distinguere questa lista?

+3

distinto con tasto, per valore o per entrambi –

+1

Usa un 'dizionario' piuttosto che un' elenco'? – Khan

+1

Il dizionario non è una buona risposta: non distinto dal valore o da entrambi AND fornisce eccezioni chiave duplicate prima distingutin 'it ;-) –

risposta

12

distinto sia da Key e Value:

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

distinto da Key o Value (basta cambiare la proprietà on GroupBy chiamata:?

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

È necessario utilizzare un Set (di oggetti pair) se si desidera avere coppie distinte o una mappa/dizionario se si desidera avere chiavi distinte.

+0

.NET ha una collezione Set corretta? –

+2

'ISet ' è l'interfaccia e 'HashSet ' è un'implementazione. Funziona come previsto. – Jacob

+0

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

Problemi correlati