【发布时间】:2017-01-18 15:01:40
【问题描述】:
我有一个列数据类型为字符串的数据表。
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,2,3,4,5”的行号。
我不能使用Contains,因为如果行中的值为 55,而我正在搜索 5,它将返回 true。我想使用 linq 进行整数搜索。
我是 linq 的新手。我尝试了类似的方法,但出现错误。
foreach (int i in lstEff)
{
dt.AsEnumerable().Where(c => c.Field<string>("LowerRange").Split(',').ToList<int>().Contains(i.ToString()));
}
【问题讨论】:
-
乍一看应该是
Split(',')带引号 -
是的.. 将字符串转换为整数列表时出错.. Split(',').ToList
() 我认为这部分 -
你遇到了什么错误?