Tôi có một bộ sưu tập các đối tượng thuộc một loại mà tôi muốn chuyển đổi thành một loại khác. Điều này có thể được thực hiện dễ dàng với foreach, nhưng tôi muốn tìm ra cách sử dụng hàm tổng hợp của LINQ để làm điều đó.Cách thêm vào danh sách bằng chức năng tổng hợp của LINQ C#
Vấn đề là tất cả các ví dụ tổng hợp sử dụng loại chuỗi hoặc int, hỗ trợ toán tử '+'. Tôi muốn có loại accumulator là một danh sách, không hỗ trợ ngữ nghĩa '+'.
Dưới đây là một ví dụ nhanh:
public class DestinationType
{
public DestinationType(int A, int B, int C) { ... }
}
var set = from item in context.Items
select new { item.A, item.B, item.C };
var newSet = set.Aggregate(new List<DestinationType>(),
(list, item) => list.Add(new DestinationType(item.A, item.B, item.C)));
Vấn đề là Danh sách <> .Add trả về void. Kiểu trả về của tham số thứ hai để tổng hợp cần phải là một List.
Nếu tôi có một loại danh sách đó được hỗ trợ '+' loại ngữ nghĩa tôi chỉ có thể làm cho tham số thứ hai
list + item
Tuy nhiên tôi không thể tìm thấy bất kỳ loại bộ sưu tập có hỗ trợ loại điều.
Có vẻ như điều này có thể dễ dàng thực hiện được trong LINQ. Là có một cách? Ngoài ra, nếu tôi đang thiếu một cách hoàn toàn dễ dàng hơn, tôi cũng muốn tìm hiểu về điều đó. Cảm ơn!
Cảm ơn bạn cho tất cả các câu trả lời tuyệt vời! Câu trả lời của Sam & Talljoe thực hiện điều này đơn giản nhất khi sử dụng LINQ. Thx lần nữa! – Slaggg