Tôi đang sử dụng C# trên Framework 3.5. Tôi đang tìm cách nhanh chóng nhóm một Danh sách chung <> bởi hai thuộc tính. Vì lợi ích của ví dụ này cho phép nói rằng tôi có một List of a Order type với các thuộc tính của CustomerId, ProductId và ProductCount. Làm cách nào tôi nhận được tổng số ProductCount được nhóm theo CustomerId và ProductId bằng cách sử dụng biểu thức lambda?C# Danh sách <> GroupBy 2 Giá trị
33
A
Trả lời
56
var sums = Orders.GroupBy(x => new { x.CustomerID, x.ProductID })
.Select(group => group.Sum(x => x.ProductCount));
7
Ngoài ra, nếu bạn muốn nhận được các ID cho mỗi Tóm lại, bạn có thể làm điều này
var customerAndProductGroups =
from order in Orders
orderby order.CustomerID, order.ProductID // orderby not necessary, but neater
group order by new { order.CustomerID, order.ProductID };
foreach (var customerAndProductGroup in customerAndProductGroups)
{
Console.WriteLine("Customer {0} has ordered product {1} for a total count of {2}",
customerAndProductGroup.Key.CustomerID,
customerAndProductGroup.Key.ProductID,
customerAndProductGroup.Sum(item => item.ProductCount));
}
16
Tôi nhận ra chủ đề này là rất cũ nhưng kể từ khi tôi chỉ đấu tranh thông qua cú pháp này, tôi nghĩ rằng tôi d gửi phát hiện thêm của tôi - bạn có thể trả lại tiền và các ID (w/o foreach) trong một truy vấn như sau:
var sums = Orders
.GroupBy(x => new { x.CustomerID, x.ProductID })
.Select(group =>new {group.Key, ProductCount = group.Sum(x => x.ProductCount)});
một phần khó khăn cho tôi để làm cho nó làm việc là tổng phải được aliased, dường như ...
-1
var New1 = EmpList.GroupBy (z => z.Age) .OrderBy (Employee => Employee.Key);
dataGridView1.DataSource = New1;
+0
Câu trả lời này dường như không áp dụng cho câu hỏi. – Bryan
Các vấn đề liên quan
- 1. C# Mở rộng Flat Danh sách <T> để Dictionary <T, ICollection <int>>
- 2. Chuyển đổi Danh sách <MyObject> thành Từ điển <obj.string, Danh sách <obj.ID>>
- 3. Sắp xếp một Dictionary <int, Danh sách <int>> bằng phím + giá trị bên trong danh sách
- 4. Danh sách <int> trong C#
- 5. Nhận giá trị Max từ Danh sách <myType>
- 6. SQL Chọn giá trị trong Danh sách <string>
- 7. C# Đúc Danh sách <ushort> vào danh sách <short>
- 8. Lấy khóa từ giá trị - Từ điển <string, Danh sách <string>>
- 9. So sánh giá trị của 2 danh sách C#
- 10. C# vấn đề sai: Gán Danh sách <Derived> như Danh sách <Base>
- 11. C# Danh sách chuyển đổi <int> thành Danh sách <double>
- 12. C# Danh sách <T>. Giá trị trả về tìm kiếm nhị phân khi giá trị không tìm thấy
- 13. Tại sao thêm một giá trị mới vào danh sách <> ghi đè các giá trị trước đó trong danh sách <>
- 14. C# cách để thêm giá trị vào Danh sách <T> tại chỉ số
- 15. Chuyển đổi Danh sách <Enum> vào danh sách <string>
- 16. Cách sao chép Danh sách <> sang Danh sách khác <> bằng Comparsion trong C#
- 17. Sắp xếp Danh sách <String> trong C#
- 18. C# Chuyển đổi Danh sách <string> thành Từ điển <string, string>
- 19. Danh sách sắp xếp <String[]>
- 20. chuyển đổi danh sách <int> thành danh sách <long>
- 21. Cách nhận các giá trị khác biệt từ hai Danh sách <string>?
- 22. Danh sách <>. IndexOf có được so sánh theo tham chiếu hoặc giá trị không?
- 23. C# byte [] trở lại vào danh sách <int>
- 24. Danh sách phổ biến <string> có cùng giá trị với LINQ
- 25. Danh sách <Object> vs Danh sách <dynamic>
- 26. C# list <int> cách chèn một giá trị mới vào giữa hai giá trị
- 27. C# Danh sách <T> vs IEnumerable <T> hiệu suất câu hỏi
- 28. Danh sách <custom> tới Excel C#
- 29. ArrayList vs Danh sách <object>
- 30. chuyển đổi dữ liệu vào danh sách <double> và danh sách <string> C#
Tôi nhận ra câu trả lời này rất cũ, nhưng nếu có ai thắc mắc tại sao bí danh là cần thiết, các thuộc tính tạo ra tên trường ngầm nhưng phương thức thì không. – Jimmy