-2

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)
}

誰かが私を助けたり、私にいくつかの手がかりを与えることができますか

ありがとう

4

3 に答える 3

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

于 2012-11-16T11:06:43.657 に答える
0

これを試して

results.Where(a=> arrayval.Contains(a.CountryId.ToString()).Aggregate("", (a,b)=> a+b);
于 2012-11-16T11:06:53.783 に答える
0

配列値のリストを作成します。例:

List<string> list = new List<string>()
{
    "2",
    "12",
    "20",
    //etc...
};

そしてします

var result = results.Where(p => list.Contains(p.countryId.ToString()));

countryId基本的に、あなたはリストに含まれているものだけを選択します。

于 2012-11-16T11:13:49.923 に答える