确保某个值等于 LINQ 中的多个值之一

本文关键字:确保 LINQ | 更新日期: 2023-09-27 18:31:47

>我有一个包含"ABC"、"DEF"等值的 IEnumerable。

我正在尝试形成一个 LINQ 查询,其中对象中的属性值可能等于我的 IEnumerable 中包含的众多值之一。如何形成该 LINQ 查询?

var statesFilter = new List<string>();
statesFilter.Add("NY");
statesFilter.Add("CA");
var employees = new List<Employee>();
employees = getDataFromSomewhere();
// Code below is not working. Just wanted to give you an idea about my LINQ query
var myFilteredList = employees.Where(x => x.State.Contains(statesFilter));

员工类可以是这样的:

public class Employee
{
   public int Id { get; set; }
   public string FirstName { get; set; }
   public string LastName { get; set; }
   public string State { get; set; }
}

确保某个值等于 LINQ 中的多个值之一

如果State属性是字符串类型,则应将Where更改为以下内容:

var myFilteredList = employees.Where(x => statesFilter.Contains(x.State));

此外,您可以这样做:

var myFilteredList = employees.Where(x => statesFilter.Any(s=>s==x.State));

条件应该是

x=>statesFilter.Contains(x.State))