LINQ cho phép bạn tạo đối tượng mới bên trong biểu thức truy vấn. Điều này rất hữu ích khi bạn có các lớp đóng gói thế hệ danh sách. Tôi tự hỏi làm thế nào bạn xử lý các đối tượng được tạo ra mà cần nó?Làm thế nào để bạn loại bỏ IDisposableobject tạo bên trong một biểu thức LINQ?
Ví dụ:
class Generator
{
public IEnumerable<int> Gen(int size)
{
return Enumerable.Range(0, size);
}
}
class bar
{
public void doit()
{
var foo =
from r in Enumerable.Range(1, 3)
from g in new Generator().Gen(r)
select g;
}
}
này sẽ tạo ra 3 đối tượng Generator mà sẽ được thu gom rác tại một số điểm. Nếu Generator là IDisposable thì tôi sẽ nhận được lệnh Dispose() như thế nào?
Câu hỏi tuyệt vời. Tôi có cùng một vấn đề, chỉ có tôi đang sử dụng từ khóa let. – Marcel