In C#, dire che ho una classe chiamata Note con tre variabili membro String.Ottenere un elenco di valori distinti nell'elenco
public class Note
{
public string Title;
public string Author;
public string Text;
}
E ho una lista di tipo Nota:
List<Note> Notes = new List<Note>();
Quale sarebbe il modo più pulito per ottenere un elenco di tutti i valori distinti nella colonna Autore?
Potrei scorrere l'elenco e aggiungere tutti i valori che non sono duplicati in un altro elenco di stringhe, ma questo sembra sporco e inefficiente. Ho la sensazione che ci sia una costruzione magica di Linq che lo farà in una riga, ma non sono stato in grado di inventare nulla.
Note.Seleziona (x => x.Autore) .AsParallel(). Distinct(); "AsParallel()" potrebbe dare qualche vantaggio in termini di prestazioni, se non ci interessa l'ordine e avere più elementi nell'elenco. – Sai
@Kiquenet, distinto considerando il confronto di uguaglianza 'Default'. https://msdn.microsoft.com/en-us/library/bb348436(v=vs.110).aspx –
È necessario aggiungere ToList() prima di .Distinct()? –