Trong ASP.NET C# Tôi có một cấu trúc:Chọn Nhiều Fields từ Danh sách trong LINQ
public struct Data
{
public int item1;
public int item2;
public int category_id;
public string category_name;
}
và tôi có một danh sách những người. Tôi muốn chọn category_id
và category_name
, chạy một số DISTINCT
và cuối cùng là ORDERBY
trên category_name
.
Dưới đây là những gì tôi có bây giờ:
List<Data> listObject = getData();
string[] catNames = listObject
.Select(i=> i.category_name)
.Distinct()
.OrderByDescending(s => s)
.ToArray();
Điều này rõ ràng chỉ lấy tên thể loại. Câu hỏi của tôi là, làm cách nào để có nhiều trường và cấu trúc dữ liệu nào tôi sẽ lưu trữ trong (không phải là string[]
)?
EDIT
Sử dụng danh sách các cấu trúc không được đặt trong đá. Nếu nó sẽ được khuyến khích để thay đổi cấu trúc dữ liệu sao lưu của tôi để làm cho lựa chọn dễ dàng hơn (tôi sẽ viết rất nhiều trong số này) sau đó tôi sẵn sàng đề nghị.
Trong khi đó là không liên quan đến phía LINQ, tôi sẽ * mạnh mẽ * khuyên bạn không nên sử dụng các cấu trúc có thể thay đổi hoặc các trường công cộng. Cá nhân tôi hiếm khi tạo ra cấu trúc ở nơi đầu tiên, nhưng các cấu trúc có thể thay đổi chỉ yêu cầu sự cố. –
@Jon Skeet Cảm ơn. Tôi sẽ chuyển nó thành một lớp thông thường với các thành viên riêng. – Chet
@Jon Skeet Tại sao? – Midhat