/// <summary>
/// dataRow比较
/// </summary>
/// <param name="drA"></param>
/// <param name="drB"></param>
/// <param name="columnNames">需要比较的列名称</param>
/// <returns></returns>
public static bool DataRowCompare(DataRow drA, DataRow drB, string[] columnNames)
{
bool flag = false;
//DataRow 中需要比较的列排序
ColumnSort(drA, columnNames);
ColumnSort(drB, columnNames);
foreach (DataColumn dcA in drA.Table.Columns)
{
if (columnNames.Contains(dcA.ColumnName))
{
foreach (DataColumn dcB in drB.Table.Columns)
{
if (columnNames.Contains(dcB.ColumnName))
{
if (dcB.ColumnName == dcA.ColumnName)//列名比较
{
//类型比较
if (dcB.DataType != dcA.DataType)
{
flag = false;
break;
}
//值比较
else if (CompareObject(drA[dcB.ColumnName], drB[dcB.ColumnName]))
{
flag = true;
break;
}
}
}
}
}
}
return flag;
}
/// <summary>
/// 按照数组中列名顺序排序
/// </summary>
/// <param name="drA"></param>
/// <param name="columnNames">按照数组中列名顺序排序</param>
public static void ColumnSort(DataRow drA, string[] columnNames)
{
//drA 排序
int i = 0;
foreach (string columnName in columnNames)
{
if (drA.Table.Columns.Contains(columnName))
{
drA.Table.Columns[columnName].SetOrdinal(i);
i++;
}
}
}
对象比较方法 CompareObject(object objA, object objB):
C# 对象比较(值类型、引用类型)
深拷贝部分代码:
以上就是C# DataRow 比较 的内容,更多相关内容请关注PHP中文网(www.php.cn)!
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
程序员必备接口测试调试工具:点击使用
Apipost = Postman + Swagger + Mock + Jmeter
Api设计、调试、文档、自动化测试工具
网页生成APP,用做网站的技术去做APP:立即创建
手机网站开发APP、自助封装APP、200+原生模块、2000+映射JS接口按需打包
相关文章
相关视频