大家好我所有的查询使用Linq返回一组记录,其中一个是国家ID,我也有一系列所需的国家/地区。有没有办法循环通过countries数组,看看id是否在结果中,我想做这样的事情
results = from r in results
where
//jump to my c# array
for(int x = 0;x < array.count; x++)
{
r.countryId.ToString().Contains(array[x])
}
select r
感谢
答案 0 :(得分:4)
试试这个
var list = from r in results
where array.Contains(r.countryId.ToString())
select r;
答案 1 :(得分:1)
你可以加入收藏,但我认为Yograj Gupta的回答可能更好。
var query = from a in results
join b in array
on a.CountryId equals b.CountryId
select a;
答案 2 :(得分:0)
你没有给出数组类型,所以假设它是testclass1
class TestClass1
{
public int Id { get; set; }
public string Name { get; set; }
}
class Country
{
public int Id { get; set; }
public string Name { get; set; }
}
List<Country> countries = new List<Country>();
TestClass1[] arrays = new TestClass1[30];
countries.Where(x => arrays.Select(y => y.Id).Contains(x.Id)).ToList();
我不确定这是否是最佳方法,但我认为这样可行。
UPDATE :并不是因为数组属于country类型。遗憾。