如何更改方法以实现以下目标?

时间:2012-11-01 17:49:38

标签: linq lambda iqueryable

我有这个方法应该按名称搜索Employees的集合。 我传递了我想要查找的姓​​氏数组,该方法返回带有这些名称的Employees。简单。

    public IQueryable<Employee> GetEmployees(IEnumerable<string> lastNames)
    {
        var query = Employees.Where(e => lastNames.Contains(e.LastName));
        return query;
    }

现在我需要更改方法,以便我可以传递部分姓氏数组,并获取姓氏与部分姓氏匹配的所有员工。

    public IQueryable<Employee> GetEmployees(IEnumerable<string> partialLastNames)
    {
        // the code above will not work
    }

如果我有这些名字的员工: 西格妮·韦弗,阿曼达·比弗,约翰·史密斯,简·马西森

我传递partialLastName arary [“aver”,“math”],它会返回一个匹配的查询:Sigourney Weaver,Amanada Beaver和Jane Matheson

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找这个

public IQueryable<Employee> GetEmployees(IEnumerable<string> partialLastNames)
{
      var query = Employees.Where(e => partialLastNames.Any(x => e.LastName.Contains(x)));
      return query;
}