求个高效写法
我有一个DataTable,
里面存了 4列
id sek ced med
1 101 3 101MP30234
2 102 3 102MP30234
3 103 3 103MP30234
4 104 3 101MP30234
5 105 3 101MP30234
6 108 3 108MP30234
...
现在想写个方法做个 验证, med 这列的 前三个字符是sek,第6个字符是ced,只要有一行数据不满足就返回错误.
我现在只能用 for 循环,一行一行 再利用substring函数 判断这种写法
有没什么 高效简洁的写法,或者把 datatable也可以转成 别的泛型什么的再做判断之类思路的写法.
求大牛指教下.
------解决方案--------------------没办法,你要不就用sql去筛选,要不就用linq,要不就自己遍历
------解决方案--------------------
var query=from q in datatable.AsEnumerable()
where q.Field<string>("med").SubString(0,3)!="sek"||q.Field<string>("med").SubString(5)!="ced" select med
if(query.Count()>0) return; //这个会全部遍历
========================================================
string value="";
foreach(var a in datatable.Rows.AsEnumerable())
{
value=a.Field<string>("med");
if(value.SubString(0,3)!="sek"||valueSubString(5)!="ced") return;
}
这个是常规的
------解决方案--------------------C# code
int i = 0;
while (true)
{
try
{
var dataRow = dataTable.Rows[i];
}
catch
{
return false;
}
var tempString = dataTable.Rows[i]["med"].ToString();
if (tempString.Substring(0, 2).Equals(dataTable.Rows[i]["sek"]) &&
tempString[6].Equals(dataTable.Rows[i]["ced"]))
{
return true;
}
i++;
}