C# 如何高效比较DateTable和数组不同
当DateTable不同时会进行删除
数组不同时会进行新增
但数组为二维数组 最内面一组内容有多个值,但对比就比第一位
C# 如何高效比较DateTable和数组不同
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
回答:- 如何高效比较DataTable和数组不同? 要比较DataTable和数组是否不同,可以先将DataTable转换为数组,再进行比较。不过要注意数组和DataTable的元素类型要一致,否则需要进行类型转换。 比较数组不同可以使用Linq,大约的代码如下:
var arr1 = new int[] { 1, 2, 3 }; var arr2 = new int[] { 2, 3, 4 }; var except1 = arr1.Except(arr2).ToArray(); // 输出: 1 var except2 = arr2.Except(arr1).ToArray(); // 输出: 4 var except3 = arr1.Intersect(arr2).ToArray(); // 输出: 2,3
比较DataTable不同可以使用Linq和DataColumnCollection,大致的代码如下:
var dt1 = new DataTable(); dt1.Columns.Add("id", typeof(int)); dt1.Columns.Add("name", typeof(string)); dt1.Rows.Add(1, "alice"); dt1.Rows.Add(2, "bob"); var dt2 = new DataTable(); dt2.Columns.Add("id", typeof(int)); dt2.Columns.Add("name", typeof(string)); dt2.Rows.Add(1, "alice"); dt2.Rows.Add(3, "charlie"); var except1 = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default).CopyToDataTable(); // 输出: id=2,name=bob var except2 = dt2.AsEnumerable().Except(dt1.AsEnumerable(), DataRowComparer.Default).CopyToDataTable(); // 输出: id=3,name=charlie var intersect = dt1.AsEnumerable().Intersect(dt2.AsEnumerable(), DataRowComparer.Default).CopyToDataTable(); // 输出: id=1,name=alice
- 当数据不同时如何进行删除或新增? 如果数组和DataTable不同时需要进行删除和新增,可以先用上面的方法找出不同的元素,然后进行相应的操作。 从DataTable中删除元素,可以使用DataTable.Rows.Remove或DataTable.Rows.RemoveAt方法,例如:
foreach (var row in except1.Rows) { dt1.Rows.Remove(row); }
向数组中新增元素,可以使用Array.Resize或List.Add方法,例如:
Array.Resize(ref arr1, arr1.Length + 1); arr1[arr1.Length - 1] = 4;
var list1 = arr1.Cast<int>().ToList(); list1.Add(4); arr1 = list1.ToArray();
向DataTable中新增元素,可以使用DataTable.Rows.Add方法,例如:
foreach (var row in except2.Rows) { var newRow = dt1.NewRow(); newRow["id"] = row["id"]; newRow["name"] = row["name"]; dt1.Rows.Add(newRow); }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 神经网络怎么把隐含层变量融合到损失函数中?
- ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
- ¥15 lingo18勾选global solver求解使用的算法
- ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
- ¥15 Python3.5 相关代码写作
- ¥20 测距传感器数据手册i2c
- ¥15 RPA正常跑,cmd输入cookies跑不出来
- ¥15 求帮我调试一下freefem代码
- ¥15 matlab代码解决,怎么运行
- ¥15 R语言Rstudio突然无法启动