3

こんにちは。Linqを使用して、レコードのセットを返すクエリがあります。そのうちの1つは国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();

これが最善のアプローチかどうかはわかりませんが、これでうまくいくと思います。

UPDATE : 配列のタイプも国のものではありませんでした。ごめん。

于 2012-10-30T12:37:48.410 に答える