S22*_*S22 10
如果你使用一个类型DataSet
,即在设计时声明,"linq Contains方法"采用一个类型DataRow
.默认值IEqualityComparer
将比较中的所有值DataRow
.(这通常是无用的,因为你应该定义一个键).
DataSet1 ds = new DataSet1();
DataSet1.DataTable1Row row = ds.DataTable1.AddDataTable1Row(bla, bla);
bool exists = ds.DataTable1.Contains(row);
Run Code Online (Sandbox Code Playgroud)
如果你想检查所有的cells
a DataRow
,你可以试试这个功能:
bool ContainDataRowInDataTable(DataTable T,DataRow R)
{
foreach (DataRow item in T.Rows)
{
if (Enumerable.SequenceEqual(item.ItemArray, R.ItemArray))
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用LINQ检查数据表中是否存在行.按照此解决方案,将"id"替换为行的主键,通过该主键可以唯一地标识表中的行.
DataRow dr = null; // assign your DR here
DataTable dt = new DataTable(); // assign Datatable instance here.
var k = (from r in dt.Rows.OfType<DataRow>() where r["id"].ToString() == dr["id"].ToString() select r).FirstOrDefault();
if(k != null)
{ // Row is present }
Run Code Online (Sandbox Code Playgroud)
你可以使用Contains
如下
if(DataTable.Columns.Contains("RowName"))
{
//Do some stuffs here
}
Run Code Online (Sandbox Code Playgroud)