Bất kỳ ai quan tâm đến việc chúng tôi có nên sử dụng "I" hoặc "II" và "&" hoặc "& &" trong LINQ Where() tiện ích mở rộng/truy vấn của chúng tôi không? Bất kỳ sự khác biệt với LINQ to SQL? Kết quả là cây biểu thức là nhiều hơn tôi có thể nhận được bộ não của tôi xung quanh trên một chiều thứ SáuLINQ Ở đâu() Ống đơn/đôi/Ampersands
Cảm ơn,
static void Main(string[] args)
{
var numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var q1 = numbers.Where(i => i == 1 | i == 2);
var q2 = numbers.Where(i => i == 1 || i == 2);
var q3 = numbers.Where(i => i == 1 & i < 3);
var q4 = numbers.Where(i => i == 1 && i < 3);
Write(q1);
Write(q2);
Write(q3);
Write(q4);
}
static void Write<T>(IEnumerable<T> t)
{
foreach (var i in t)
Console.Write("{0} ", i);
Console.WriteLine();
}
Results:
1 2
1 2
1
1
'|' không phải là bitwise đối với 'bool', nó không chỉ là ngắn mạch. Điều đó nói rằng, không SQL thậm chí đảm bảo rằng 'AND' và' OR' ngắn mạch có? Nếu không, thì tôi mong đợi '|' và '||' để dịch thành 'OR' trong mọi trường hợp. –
Ok Pavel, Marc, đúng không? Khác với mã của người mà tôi đang xem xét, tôi chưa bao giờ thấy các phiên bản đơn lẻ được sử dụng. – andleer
|/& không phải là "bitwise" chúng chỉ là bitwise cho các loại tích phân và bool. Chúng hợp lý cho mọi thứ khác. –