Tôi có một danh sách các dữ liệu như vậy:dẹt LINQ Nhóm truy vấn
ID AddressPurpose Address ...
1 L
1 P
2 L
2 P
3 P
3 L
4 P
4 L
5 P
6 L
Tôi muốn để có thể lọc dữ liệu để cho mỗi số duy nhất nếu có một hàng P sau đó nó được trả lại người nào khác Hàng L được trả về. Vì vậy, các dữ liệu sẽ trông như thế này:
ID AddressPurpose Address ...
1 P
2 P
3 P
4 P
5 P
6 L
Tại thời điểm này tôi có truy vấn này mà hoạt động tốt:
var query = from c in list
orderby c.AddressPurpose descending
group c by c.ID
into g
select g;
var finalList = new List<Company>();
foreach (var list in query)
{
finalList.Add(list.First());
}
return finalList;
Có cách nào tốt hơn để làm điều này mà không sử dụng foreach thêm?
Bạn phải nhập khi tôi đang chỉnh sửa thư trả lời của chính tôi, lc! +1! –
Tôi đoán vậy. Tôi cũng thích các truy vấn lồng nhau của bạn, chúng có thể sử dụng lại bất cứ lúc nào bạn cần lặp lại thông qua các truy vấn phức tạp. –
Cảm ơn. Điều đó hoạt động rất tốt. Tôi giờ đã hiểu phần "thành g". –