3

大家好,我有一个使用 Linq 的查询,它返回一组记录,其中一个是国家 ID,我还有一系列所需的国家。有没有办法循环遍历国家数组并查看 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

谢谢

4

3 回答 3

4

试试这个

var list  =  from r in results
             where array.Contains(r.countryId.ToString()) 
             select r;
于 2012-10-30T12:23:25.280 回答
1

您可以加入收藏,但我认为 Yograj Gupta 的答案可能是更好的答案。

var query = from a in results
            join b in array
            on a.CountryId equals b.CountryId
            select a;
于 2012-10-30T15:01:31.400 回答
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();

我不确定这是否是最好的方法,但我认为这会奏效。

更新:没有注意到数组也是国家类型的。对不起。

于 2012-10-30T12:37:48.410 回答