Đây là một biểu thức LINQ sử dụng phương pháp cú pháp (như trái ngược với cú pháp truy vấn):
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
pairs = numbersA
.SelectMany(_ => numbersB, (a, b) => new { a, b })
.Where(x => x.a < x.b);
Các truy vấn ban đầu được dịch sang này:
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
pairs = numbersA
.SelectMany(_ => numbersB, (a, b) => new { a, b })
.Where(x => x.a < x.b)
.Select(x => new { x.a, x.b });
Tuy nhiên Select
cuối cùng không bắt buộc và có thể bị xóa.
Nguồn
2011-08-25 09:50:21
Chỉ cần bắn lên ILSpy để tìm hiểu, nhưng nó đã không thay đổi nó thành phương pháp. (Có vẻ như tôi sẽ phải đợi @Jon Skeet!) –