LINQ查询以查询具有数组成员的列表

时间:2010-11-23 21:03:30

标签: c# .net linq linq-to-objects

我正在尝试使用LINQ查询列表。

查询语句包含应与数组中的项匹配的条目。

换句话说,从SourceList获取与items数组中的任何一个项匹配的条目。 例如:

private List<string> GetSearchResult(List<string> SourceList,
    string name, string[] items)
{
     IEnumerable<string> QueryList = SourceList.Where
         (entry => enrty.name == name && entry.id == <any item from items>)
}

我想过构建一个通过items数组循环的查询字符串。 我想知道是否有一种有效的方法。

3 个答案:

答案 0 :(得分:4)

private List<string> GetSearchResult(List<string> SourceList,
    string name, string[] items)
{
     return SourceList.Where(entry => entry.name == name 
         && items.Contains(entry.id))
}

答案 1 :(得分:2)

怎么样:

private List<string> GetSearchResult(List<string> SourceList,string name, string[] items)
{
     List<string> QueryList = SourceList.Where
                     (entry => enrty.name == name && items.Any(m => m == entry.id.ToString()))
}

答案 2 :(得分:1)

private List<string> GetSearchResult(List<string> SourceList,string name, string[] items)
{
     return SourceList.Where(entry => entry.name == name && items.Contains(entry.id)).ToList();
}

应该这样做。