Tôi đang tìm các phương pháp hay nhất để tạo bộ sưu tập được tạo từ các loại ẩn danh.Bộ sưu tập loại ẩn danh?
Có một số cách tiếp cận - this một và nhiều câu trả lời nhất trên this chuỗi giả định rằng toàn bộ bộ sưu tập ẩn danh có thể được tạo trong một tuyên bố.
Vì các loại vô danh thường được sử dụng để thay thế các lớp được sử dụng để lưu trữ tạm thời (như được đưa ra trong this SO answer), tôi muốn tránh tạo và sử dụng lớp cho các bộ sưu tập ẩn danh như this post gợi ý.
Trong trường hợp của mình, tôi đang lặp qua bộ sưu tập - cho mỗi mục trong bộ sưu tập, tôi muốn thu thập các đối tượng liên quan trong một loại ẩn danh (hoạt động như một bộ dữ liệu). Tôi cần những loại ẩn danh này để được đưa vào bộ sưu tập và sau đó sắp xếp chúng để tiếp tục công việc.
cách tiếp cậnkhác tôi đã xem xét:
- Sử dụng một đối tượng [] hoặc ArrayList (mất lợi ích của loại vô danh)
- Tạo một lớp wrapper cho các mục yêu cầu (loại bỏ sự cần thiết của các ẩn danh loại)
Đây là nơi duy nhất trong mã của tôi mà tôi cần bộ sưu tập như vậy - cách tiếp cận tốt nhất là gì?
Thông tin bổ sung:
tôi đang làm việc với di sản Net 1.1 đối tượng, vì vậy các bộ sưu tập Tôi đang làm việc với các bộ sưu tập là gõ mạnh thực hiện IEnumerable, và như vậy hầu hết các phương pháp khuyến nông LINQ như .Chọn thắng' t công việc:
mẫu Mã
foreach (Item item in myItems)
{
foreach (Confirmation confirmation in item.GetConfirmations(true))
{
if (lastParentId != item.ParentId)
{
lastParentId = item.ParentId;
parentObject = new ParentItem(lastParentId);
}
itemHolder = new ArrayList { item, confirmation };
if (parentObject!= null)
{
itemHolder.Add(parentObject.Rate);
}
sortConfirmations.Add(confirmation.Date, itemHolder);
}
}
// Use sortConfirmations
Nghị quyết
Tôi đã sử dụng từ điển chung để thu thập các mục liên quan với nhau và sử dụng .OrderBy() để sắp xếp chúng - xấu xí, nhưng nó hoạt động ... và tốt hơn mã hiện có.
Để biết thông tin; để sử dụng LINQ với các bộ sưu tập cũ hơn, hãy sử dụng .Cast(), tức là myItems.Truyền - () v.v. –