我有以下代码。我用它来比较两个DataTables(一个是从SQL Server填充而另一个是从Oracle填充)。比较工作正常,但当我尝试执行不区分大小写的比较时,它给了我一个错误。
bool compareTables(string tb1, string tb2, bool matchCase)
{
DataTable table1 = getTable1(tb1);
DataTable table2 = getTable2(tb2);
bool equal = true;
int equalCount = 0;
int unEqualCount = 0;
foreach (DataRow row1 in table1.Rows)
{
foreach (DataRow row2 in table2.Rows)
{
var array1 = row1.ItemArray;
var array2 = row2.ItemArray;
bool result;
if (matchCase)
result = array1.SequenceEqual(array2);
else
result = array1.SequenceEqual(array2, StringComparer.OrdinalIgnoreCase);
if (result)
{
equalCount++;
}
else
{
unEqualCount++;
equal = false;
}
}
}
return equal;
}
我记住这个“StringComparer.OrdinalIgnoreCase”参数不适用于DataTable中的ItemArray。任何人都可以建议一个解决方法吗?