在DataTable的所有列中查找一个字符串我正在寻找一种快速的方法来在DataTable的所有列中查找一个字符串!随后没有工作,因为我想在所有列值中搜索。stringstr="%whatever%";foreach(DataRowrowindataTable.Rows)foreach(DataColumncolinrow.ItemArray)if(row[col].ToString()==str)returntrue;这可以通过过滤来实现。基于所有列创建一个(可重用的)过滤器字符串:boolUseContains=false;intcolCount=MyDataTable.Columns.Count;字符串likeStatement=(UseContains)?“赞‘%{0}%’”:“赞‘{0}%’”;for(inti=0;i现在您可以获得其中一列与搜索字符串匹配的行:可以使用LINQ。它不会更快,因为如果值不存在,您仍然需要查看每个单元格,但它会适合一行:returndataTable.Rows.Cast().Any(r=>r.ItemArray.Any(c=>c.ToString().Contains("whatever")));要搜索随机文本并返回包含至少一个匹配不区分大小写的单元格的行数组,请使用以下命令:vartext="whatever";返回dataTable.Rows.Cast().Where(r=>r.ItemArray.Any(c=>c.ToString().IndexOf(text,StringComparison.OrdinalIgnoreCase)>0)).ToArray();如果你想检查表中每一列每一行的数据,试试这个(它对我有用!)。DataTableYourTable=newDataTable();//在这里用你得到的任何东西填充你的数据表。foreach(DataRowrowinYourTable.Rows){foreach(objectiteminrow.ItemArray){//在这里用这些信息做你必须做的事!不要忘记将对象项目转换为您需要的任何内容(字符串、整数等)。我已经完成了调试器,它就像一个魅力。我希望这个帮助能祝你好运!您可以使用包含列名的字符串数组创建搜索例程:string[]elems={"GUID","CODE","NAME","DESCRIPTION"};//Namesofthecolumnsforeach(stringcolumninelems){stringexpression=string.Format("{0}like'%{1}%'",column,txtSearch.Text.Trim());//搜索表达式DataRow[]row=data.Select(expression);if(row.Length>0){//这里有一些代码}else{//这里有其他代码}}您还可以在数据表上创建过滤器表达式。请参阅这篇MSDN文章。在过滤器表达式中使用like。以上就是C#学习教程:查找所有DataTable列中字符串共享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---stringfilterExp="Status='Active'";stringsortExp="城市";DataRow[]drarray;drarray=dataSet1.Customers.Select(filterExp,sortExp,DataViewRowState.CurrentRows);for(inti=0;i本文收集自网络,不代表立场,如涉及侵权,请点右联系管理员删除。如需转载请注明出处:
