In ASP.NET C# ho una struct:selezionare più campi da List in Linq
public struct Data
{
public int item1;
public int item2;
public int category_id;
public string category_name;
}
e ho un elenco di quelli. Voglio selezionare category_id
e category_name
, eseguire un DISTINCT
e infine uno ORDERBY
su category_name
.
Ecco quello che ho adesso:
List<Data> listObject = getData();
string[] catNames = listObject
.Select(i=> i.category_name)
.Distinct()
.OrderByDescending(s => s)
.ToArray();
Questo, ovviamente, ottiene solo il nome della categoria. La mia domanda è, come posso ottenere più campi e quale struttura dati verrà memorizzata in (non a string[]
)?
EDIT
Usando una lista di struct non è scolpito nella pietra. Se sarebbe opportuno cambiare la struttura dei dati di supporto per rendere più facile la selezione (ne scriverò molti), prenderei volentieri delle raccomandazioni.
Mentre è non correlato al lato LINQ, vorrei * fortemente * consigliare di non usare strutture mutevoli o campi pubblici. Personalmente raramente creo le strutture in primo luogo, ma le strutture mutabili richiedono solo problemi. –
@Jon Skeet Grazie. Lo convertirò in una classe normale con membri privati. – Chet
@Jon Skeet Perché? – Midhat