Tôi muốn đạt được điều gì đó tương tự như this. Nhưng tôi không biết tôi có thể sử dụng giải pháp đó theo cách nào.Chia bộ sưu tập thành các phần dựa trên điều kiện với LINQ?
thực thể của tôi có những tính chất
CustomerName
Date
SortOrder
Tôi đã toàn bộ danh sách các thực thể này. Những gì tôi muốn làm là, nhóm tất cả những mặt hàng thuộc Danh mục <> có liên tiếp SortOrder và cùng ngày và cùng CustomerName
Ví dụ đầu vào
var inv = new List<Invoice>(){
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 0},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 1},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 2},
new Invoice(){ CustomerName = "xyz" ,Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 3},
new Invoice(){ CustomerName = "xyz" ,Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 4},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 5},
new Invoice(){ CustomerName = "Abc" ,Date = DateTime.Today, SortOrder = 6}
};
đầu ra Ví dụ
var invGrouped = new List<List<Invoice>>
{
new List<Invoice>
{
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 0},
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 1},
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 2}
},
new List<Invoice>
{
new Invoice {CustomerName = "xyz", Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 3},
new Invoice {CustomerName = "xyz", Date = DateTime.Today.Subtract(TimeSpan.FromDays(1)), SortOrder = 4}
},
new List<Invoice>
{
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 5},
new Invoice {CustomerName = "Abc", Date = DateTime.Today, SortOrder = 6}
}
};
CẬP NHẬT
Giải pháp không phải LINQ cũng sẽ đủ.
Nó rất nhiều sẽ giúp đỡ nếu bạn có thể bao gồm một mẫu nhỏ của dữ liệu cũng như chính xác những gì bạn mong đợi dữ liệu đó để trông giống như khi nó được nhóm lại. – diceguyd30
@ diceguyd30! Tôi đã cập nhật câu hỏi – IsmailS
Tại sao không phải là hai hàng dưới cùng (với CustomerName "Abc" và DateTime of Today) trong cùng danh sách với các đơn đặt hàng "Abc" khác của Khách hàng được đặt hôm nay? –