背景
在工作过程中在使用框架的时候,遇到写Linq的判断条件的时候,我代码写成"t=>t.x.Equals(model.Id)&t.y.Equals(model.Name)"类似这种的形式。但是结果程序报错。然后我就写了下面的代码。
代码1
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 var persons = GetPersonList(); 6 var result = persons.Where(u => u.Age == 2 &u.Name=="B"); 7 foreach (var item in result) 8 { 9 Console.WriteLine(item.ToString()); 10 } 11 Console.ReadKey(); 12 } 13 14 private static List<Person> GetPersonList() 15 { 16 return new List<Person> 17 { 18 new Person {Name = "A", Age = 1}, 19 new Person {Name = "B", Age = 2}, 20 new Person {Name = "C", Age = 2} 21 }; 22 } 23 } 24 25 public class Person 26 { 27 public string Name { get; set; } 28 29 public int Age { get; set; } 30 31 public override string ToString() 32 { 33 return string.Format("Name:{0},Age:{1}", Name, Age); 34 } 35 }
运行结果如图
代码2
1 static void Main(string[] args) 2 { 3 var persons = GetPersonList(); 4 var result = persons.Where(u => u.Age == 2 &&u.Name=="B"); 5 foreach (var item in result) 6 { 7 Console.WriteLine(item.ToString()); 8 } 9 Console.ReadKey(); 10 }
在原来的&多加一个&,同样程序也可以运行,得出的结果也是
疑问
在C#里面的IEnumerable<T>扩展方法里面位运算符(&)与并运算符(&&)的作用是一样的?
时间: 2024-11-12 13:28:03