我正在尝试在DataRow数组中找到一组条件的匹配项。
string startDate = "1/1/2012";
string endDate = "11/1/2012";
DataRow[] scheduleResults = myDataTable.AsEnumerable()
.Where(r => r.Field<string>("Name").Contains("Eglin")
&& r.Field<string>("Name").Contains(startDate)
&& r.Field<string>("Name").Contains(endDate)).ToArray();
这将返回两个DataRows scheduleResults
USAF:Eglin (1/1/2012-11/1/2012)
USAF:Eglin (11/1/2012-3/31/2017)
我可以看到startDate
实际上包含了,endDate
这就是为什么我得到这两个结果的原因。我的问题是,如何在整体上startDate
完全匹配,所以我不会得到第二个结果。
假设格式保持不变,您就可以匹配 "(" + startDate + "-" + endDate + ")"
string startDate = "1/1/2012";
string endDate = "11/1/2012";
DataRow[] scheduleResults = myDataTable.AsEnumerable()
.Where(r => r.Field<string>("Name").Contains("Eglin")
&& r.Field<string>("Name").Contains("(" + startDate + "-" + endDate + ")"))
.ToArray();
假设您的所有数据都在一个名为“名称”的字段中,那不是错字。如果可能的话,最好将数据元素存储在单独的列中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句