将结果添加到linq查询

时间:2012-11-16 11:04:33

标签: c# asp.net

我正在使用linq查询数据表,然后查询结果以过滤掉我想要的内容,问题是我需要查询数组的每个值,这些值就像这样,2或22 ,或,21等

所以我通常会这样做

results = from a in results
     where a.countryId.ToString().Contains(value)
     select a;

我想做的是这个

foreach(string str in arrayval)
{
results += from a in results 
      where a.countryId.ToString().Contains(str)
}

任何人都可以帮助或给我一些线索

感谢

3 个答案:

答案 0 :(得分:1)

您希望根据数组值的比较选择结果。就像是。 Select * from table where ID in (1,2,3)。您可以尝试以下查询,而不是连接结果。

var result = from a in result
             where arrayval.Contains(a.CountryId.ToString())
             select a;

如果您的arrayval是一个int类型数组,那么您可以在.ToString()

末尾删除a.CountryID

答案 1 :(得分:0)

试试这个

results.Where(a=> arrayval.Contains(a.CountryId.ToString()).Aggregate("", (a,b)=> a+b);

答案 2 :(得分:0)

我会创建一个数组值列表,例如

List<string> list = new List<string>()
{
    "2",
    "12",
    "20",
    //etc...
};

然后再做

var result = results.Where(p => list.Contains(p.countryId.ToString()));

基本上,您只需选择列表中包含的countryId