Một số thời gian trước đây, tôi đã làm việc trên một dự án khá xoắn - Tôi chỉ có thể viết mã trong phạm vi duy nhất và sau đó nó sẽ được đặt trong một hàm C# (bởi một mô-đun khác).Có thể sử dụng LINQ và lambdas mà không bao gồm không gian tên System.Linq không?
Tôi chỉ có thể sử dụng các không gian tên đã được khai báo trước đó (tôi không có ảnh hưởng đến chúng) và chỉ có thể sử dụng các biến từ phạm vi mà tôi đã làm việc. Do đó, tôi không thể thay đổi tiêu đề và thư viện được bao gồm .
Sự cố xảy ra khi tôi muốn hoạt động trên bộ sưu tập chung - tôi không thể sử dụng cả biểu thức lambda, cũng không phải LINQ - Tôi không đơn giản là có thể đặt using System.Linq;
vì tôi không có quyền truy cập vào tiêu đề tệp.
Tôi phải làm một điều đơn giản và dễ quản lý mà không có LINQ hoặc lambda. Tuy nhiên, sau đó tôi đã tự hỏi điều gì sẽ xảy ra, nếu tôi phải sử dụng một số hoạt động phức tạp hơn trên IEnumerable . Từ đó, có câu hỏi của tôi:
Có thể sử dụng LINQ hoặc lambdas mà không thay đổi tiêu đề tệp và thêm không gian tên mới không?
Giả sử chúng tôi có List<int> _Numbers = new List<int>();
. Hãy để nó được làm đầy với một số con số. Bây giờ tôi muốn chọn tất cả các số chẵn từ đó.
Với using System.Linq;
trong tiêu đề, giải pháp là rõ ràng:
List<int> _NewList = _Numbers.Where(n => n % 2 == 0).ToList();
hoặc
List<int> _NewList = (from _Number in _Numbers where _Number % 2 == 0 select _Number).ToList();
Nhưng mà không LINQ bao gồm, làm thế nào tôi có thể đạt được điều này? đoán đầu tiên của tôi sẽ là một cái gì đó như:
List<int> _NewList = System.Linq. // ??? What to add here?
Tôi biết rằng vấn đề là khá kỳ lạ, và nó rất bất thường để đi theo con đường này, nhưng tôi chỉ tò mò và tôi đã không tìm thấy thông tin về vấn đề này trường hợp.
'System.Linq.Enumerable.Where (_NewList, n => n% 2 == 0)' –
@nsinreal - cảm ơn, đó là chính xác những gì tôi đang tìm kiếm. Thêm câu trả lời đó và tôi sẽ đánh dấu nó là chính xác;) –
Bạn cũng có thể bao gồm các câu lệnh 'using' trong khai báo không gian tên của lớp. Đó có phải là bên ngoài phạm vi bạn có quyền truy cập không? – Sam