Bây giờ tôi đến một giai đoạn để có được tất cả các dữ liệu của tôi như là một danh sách trong bộ nhớ cache (đối tượng) và điều tiếp theo của tôi tôi phải làm là để loại bỏ một số trường hợp từ danh sách.Xóa các phiên bản khỏi danh sách bằng cách sử dụng LINQ hoặc Lambda?
Thông thường, tôi sẽ làm loại bỏ như thế này:
List<T> list;
List<T2> toBeRemovedItems;
// populate two lists
foreach(T2 item in toBeRemovedItems)
{
list.Remove(delegate(T one) {
// build a condition based on item
// return true or false
});
}
Để cụ thể hơn, tôi thực sự xây dựng hoặc cư toBeRemvoedItems danh sách của một lớp năng động (không phải là một lớp được xác định chính thức). Ví dụ, lớp T là một cái gì đó giống như MyClass và mã để loại bỏ là:
class MyClass<C> {
public string Value1 { get; set; }
public int Value2 { get; set; }
public C ObjectC { get; set; }
}
....
List<MyClass<C>> list;
// populate list
// populate toBeRemovedItems. Here is an example of hard-coded codes:
var toBeRemovedLItems = new[] {
new { Value1="a", Value2 = 1},
new { Value2="x", Value2 = 10},
...
};
// toBeRemovedItems may be the result of Select from a collection
foreach(var item in toBeRemovedLItems)
{
list.Remove(delegate(MyClass one) {
return one.Value1 = item.Value1 && one.Value2 < item.Value2;
});
}
tôi đã cố gắng để tìm kiếm Remove()
phương pháp trong IEnumerable
giao diện từ MSDN, nhưng tôi không thể tìm ra phương pháp Remove()
đó (nó có ý nghĩa rằng IEnumerable
chỉ được sử dụng để đếm). Trong lớp List, có một số phương thức quá tải Remove(...)
. Tôi không chắc chắn nếu có bất kỳ cách nào khác để loại bỏ các mục từ một danh sách bằng cách sử dụng LINQ hoặc Lambda biểu thức?
Nhân tiện, tôi đã nghĩ về cách thực hiện truy vấn đối với danh sách để nhận tập hợp con hoặc danh sách IEnumerable
mới với Điều kiện ở đâu, tương tự như di chuyển các mục từ danh sách. Tuy nhiên, tôi thích xóa các mục khỏi danh sách được lưu trong bộ nhớ cache của tôi và có một số trường hợp tôi không thể đặt lại thuộc tính danh sách trong một lớp thành danh sách mới (ví dụ như tập hợp riêng).
Trông giống như một bản dupe. Vâng, về cơ bản bạn đã đề cập đến tất cả các phương pháp có thể có trong bài đăng ... http://stackoverflow.com/questions/1120336/what-is-the-easiest-way-to-foreach-through-a-listt-removing-unwanted -objects –