私は列データ型が文字列であるdatatableを持っています。文字列値を持つデータテーブル内の整数項目を検索
DataTable dt = new DataTable();
dt.Columns.Add("LowerRange", typeof(string));
dt.Columns.Add("UpperRange", typeof(string));
DataRow dr = dt.NewRow();
dr["LowerRange"] = "1,2,3,4,5";
dr["UpperRange"] = "55";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["LowerRange"] = "6,7,8,9,10";
dr["UpperRange"] = "66";
dt.Rows.Add(dr);
私は整数のリストを持っています。
List<int> lstEff = new List<int>() { 4,5,6,7 };
整数リスト内の項目の中で、リスト内に1つ以上の一致があるデータテーブルの列値を探したいとします。そして最も低いマッチが取られなければならない。
この場合、「1,2,3,4,5」に対応する行番号を取得する必要があります。
行の値が55で、5を検索している場合はtrueを返すため、Contains
は使用できません。私はlinqを使って整数検索をしたい。
私はlinqを初めて使っています。このようなことを試しましたが、エラーがあります。
foreach (int i in lstEff)
{
dt.AsEnumerable().Where(c => c.Field<string>("LowerRange").Split(',').ToList<int>().Contains(i.ToString()));
}
のようなSTHをお勧めします、( '分割する必要があります'、') 'を引用符で囲みます。 – Pikoh
@Pikoh .Changed。 –
Yea ..文字列を整数のリストに変換する際にエラーが発生しました。分割( '、')。()この部分は私には思っています –