比较C#桌面应用程序中不区分大小写的DataTables

时间:2014-09-09 16:05:33

标签: c# sql-server oracle comparison datatables

我有以下代码。我用它来比较两个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。任何人都可以建议一个解决方法吗?

0 个答案:

没有答案