Wybierz Wiele pól z listy w Linq

W ASP.NET C # mam strukturę:

public struct Data
{
    public int item1;
    public int item2;
    public int category_id;
    public string category_name;
}

i mam ich listę. Chcę wybraćcategory_id icategory_name, działa aDISTINCT i wreszcieORDERBY nacategory_name.

Oto, co mam teraz:

List<Data> listObject = getData();
string[] catNames = listObject
                    .Select(i=> i.category_name)
                    .Distinct()
                    .OrderByDescending(s => s)
                    .ToArray();

To oczywiście otrzymuje nazwę kategorii. Moje pytanie brzmi, jak uzyskać wiele pól i jaką strukturę danych zapiszę (nie astring[])?

EDYTOWAĆ

Używanie listy struktur nie jest ustawione w kamieniu. Jeśli byłoby wskazane, aby zmienić moją strukturę danych podkładu, aby ułatwić wybór (będę pisał wiele z nich), chętnie bym polecił.

questionAnswers(4)

yourAnswerToTheQuestion