List<Employee> listEmployees = new List<Employee>{
new Employee {ID = 101, FirstName = "Mark", AnnualSalary = 60000},
new Employee {ID = 102, FirstName = "Mary", AnnualSalary = 35000},
new Employee {ID = 103, FirstName = "John", AnnualSalary = 30000}
};
var result5 = listEmployees.Select(x => new {x.ID, x.FirstName})
.Contains(new Employee {ID = 101, FirstName "Mark"});
Response.Write(result5 + "<br/>");
如何比较员工ID 101和FirstName&#34; Mark&#34;存在?
答案 0 :(得分:3)
listEmployees.Any(employee => employee.FirstName.Equals("Mark") && employee.ID == 101)
如果列表中的任何对象具有FirstName“Mark”和ID 101,则返回true。如果需要在方法中使用它,则可以推广。
答案 1 :(得分:1)
传递给Contains
的项目需要匹配序列中项目的类型,在本例中是特定的匿名类型,而不是其他类型。如果你提供一个匿名类型的对象(使用相同类型和名称的相同字段),而不是Employee
,它将编译并运行得很好。
答案 2 :(得分:1)
如果您想知道列表是否包含符合您条件的项目:
Employee employee = listEmployees.FirstOrDefault(e => e.ID == 101 && e.FirstName.Equals("Mark"));
if(employee != null) //exists
{
//can take action on employee
}
或者,如果你想要一个布尔响应(比如Contains):
boolean exists = listEmployees.Any(e => e.ID == 101 && e.FirstName == "Mark");
答案 3 :(得分:1)
使用此代码检查具有特定条件的项目是否在列表中
bool exists = listEmployees.Exists(x=> x.ID == 101 && x.FirstName=="Mark");