-2

我正在使用 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)
}

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

谢谢

4

3 回答 3

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

于 2012-11-16T11:06:43.657 回答
0

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

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

然后做

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

基本上,您只是countryId列表中包含的 select 。

于 2012-11-16T11:13:49.923 回答
0

尝试这个

results.Where(a=> arrayval.Contains(a.CountryId.ToString()).Aggregate("", (a,b)=> a+b);
于 2012-11-16T11:06:53.783 回答