3

ArrayList にいくつかのデータがあり、それを使用して where 句を使用して Linq クエリをフィルター処理したいと考えています。

以下の Linq コードは 2 つのテーブルを結合し、Where 句を使用してそれらをフィルター処理します。ここで、Arraylist をフィルターとして使用して、このクエリをさらにフィルター処理したいと思います。したがって、値はarraylistから取得されます

「where」句でもう1回比較を行い、値を配列リストから取得したいと思います。

where rType.Field<string>("ProfSSCMName") == lbProfiles.SelectedValue && rType.Field<string>("Name") == lbHWTypes.SelectedValue && **arrayList.Tostring()**

これは私が使用しているコードです。

arraylist の値を使用して Linq クエリをさらにフィルタリングする方法を誰か教えてもらえますか?

joined = from rType in ds.Tables["HWTypes"].AsEnumerable()
         join rStock in ds.Tables["Stock"].AsEnumerable()
         on rType.Field<string>("ProductID") equals rStock.Field<string>("Partno")
         where rType.Field<string>("ProfSSCMName") == lbProfiles.SelectedValue && rType.Field<string>("Name") == lbHWTypes.SelectedValue
         select new
         {
             TagNumber = rStock.Field<string>("TagNumber"),
             SerialNumber = rStock.Field<string>("SerialNumber"),
             Partno = rStock.Field<string>("Partno"),
             PartType = rStock.Field<string>("PartType"),
             EcopartSubtype = rStock.Field<string>("EcopartSubtype"),
             AzertyQuerty = rStock.Field<string>("Azerty/Querty"),
             ProductID = rType.Field<string>("ProductID"),
             Name = rType.Field<string>("Name"),
             SCCMKeyboard = rType.Field<string>("SCCMKeyboard"),
             DisplayName = rType.Field<string>("DisplayName"),
             ProfSSCMName = rType.Field<string>("ProfSSCMName"),
             TagNameDisplayName = rStock.Field<string>("TagNumber") + " " + rType.Field<string>("DisplayName")

             // add the other columns you need here
         };
4

1 に答える 1

2

Linq-To-Objects を使用しているようです。したがって、arraylistでcontainsを使用できます

where rType.Field<string>("ProfSSCMName") == lbProfiles.SelectedValue 
&& rType.Field<string>("Name") == lbHWTypes.SelectedValue 
&& arrayList.Contains( rType.Field<string>("Name") )
于 2012-12-20T13:33:56.660 に答える