在linq查询中循环遍历数组

时间:2012-10-30 12:20:38

标签: c# linq

大家好我所有的查询使用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

感谢

3 个答案:

答案 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类型。遗憾。