我正在使用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)
}
任何人都可以帮助或给我一些线索
感谢
答案 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
。