问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

C# 过滤DataTable中的相同行(gethashcode)

发布网友 发布时间:2022-04-27 14:17

我来回答

2个回答

热心网友 时间:2022-04-27 15:46

写个方法
/// <summary>
/// 返回执行Select distinct后的DataTable
/// </summary>
/// <param name="SourceTable">源数据表</param>
/// <param name="FieldNames">字段集</param>
/// <returns></returns>
private DataTable SelectDistinct(DataTable SourceTable, params string[] FieldNames)
{
object[] lastValues;
DataTable newTable;
DataRow[] orderedRows;

if (FieldNames == null || FieldNames.Length == 0)
throw new ArgumentNullException("FieldNames");

lastValues = new object[FieldNames.Length];
newTable = new DataTable();

foreach (string fieldName in FieldNames)
newTable.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);

orderedRows = SourceTable.Select("", string.Join(",", FieldNames));

foreach (DataRow row in orderedRows)
{
if (!fieldValuesAreEqual(lastValues, row, FieldNames))
{
newTable.Rows.Add(createRowClone(row, newTable.NewRow(), FieldNames));

setLastValues(lastValues, row, FieldNames);
}
}

return newTable;
}

private bool fieldValuesAreEqual(object[] lastValues, DataRow currentRow, string[] fieldNames)
{
bool areEqual = true;

for (int i = 0; i < fieldNames.Length; i++)
{
if (lastValues[i] == null || !lastValues[i].Equals(currentRow[fieldNames[i]]))
{
areEqual = false;
break;
}
}

return areEqual;
}

private DataRow createRowClone(DataRow sourceRow, DataRow newRow, string[] fieldNames)
{
foreach (string field in fieldNames)
newRow[field] = sourceRow[field];

return newRow;
}

private void setLastValues(object[] lastValues, DataRow sourceRow, string[] fieldNames)
{
for (int i = 0; i < fieldNames.Length; i++)
lastValues[i] = sourceRow[fieldNames[i]];
}

热心网友 时间:2022-04-27 17:04

5和6呢??5 6也没有重复呀
规则是什么
C#datatable的问题,datatable1(dt1)主表datatable2(dt2)次表

1、最笨的一种是循环遍历,两层 for 循环。2、如果存在唯一性 Key 的话(可以理解为主键),那么把 dt2 中的这些 Key 取出,从 dt1(或其副本)中删除,剩下的自然就是非重复项。3、先对两表中的某一字段进行排序,然后用二分法做检索,相当于对第一种方法做了搜索优化。4、如果是 .NET 3....

vlookup 的用法

VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配(FALSE)或近似匹配(TRUE),前者要求完全匹配,后者则返回最接近且不大于查找值的项。VLOOKUP能够精确查找与大致匹配数据,并跨列提取相关信息,是数据处理中非常实用的工具。Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击4步自动完成vlookup匹配,无需手写公式,免费使用!

C#如何把两个datatable1与datatable2中不同的数据取出来,他们都有唯一...

static void Main(string[] args) { DataTable datatable1, datatable2; var row1 = datatable1.Rows.Cast&lt;DataRow&gt;(); var row2 = datatable2.Rows.Cast&lt;DataRow&gt;(); var except1 = row1.Except(row2, new DataRowEqualityComparer());//1在2中不存在的 var except...

C#中List&lt;T&gt;的作用与用法,求详解 谢谢

GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)GetRange 创建源 List&lt;T&gt; 中的元素范围的浅表副本。GetType 获取当前实例的 Type。 (继承自 Object。)IndexOf(T) 搜索指定的对象,并返回整个 List&lt;T&gt; 中第一个匹配项的从零开始的索引。IndexOf(T, Int32) 搜索指定的对象,...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
三星note3 如何显示来电归属地 note3如何设置显示来电归属地? 港版的 note3 怎么设置来电归属啊? 郑州和开封到底什么关系 执业中药师合格分数线每年都是72分吗? 全国中药师资格分数多少及格啊 ...和等于180°,这是古希腊数学家欧几里得提出的定理。在此后的两千多... 我老公发烧刚好,我们在一起,然后我感觉他没用劲,精子会进去吗 丈夫残疾不能自理,妻子可以提出离婚吗?寻求法律帮主 老公发烧了能要小孩吗 奥迪A6系统都是苹果的? 电脑zip文件怎么打开 C# dataGridView 删除相同数据问题 你知道扫黑除恶行业清源重点整治领域有哪些有哪些? 请问你干巴菌种怎么才能买到,可以网构到干巴菌种吗 关于山药冷冻保鲜技术方面有什么可提供的吗? 有一种植物它的味道非常像干巴菌,模样也接近,但我不知道是否可以食用? 炒菌子不放大蒜可以吗? 雪莲菌不养放在冰箱会死吗 供应商放弃部分货款如何入账 客户的预付账款打到我们欠款的客户账上这个分录怎么做? 求高手这个怎么做会计分录: A欠我100元,我又欠B100元,那么A说她帮我还我欠B的100元钱。 昆明卫生技术职称高职50岁还要考英语和计算机吗? 云南省药学(非临床医疗)药士专业技术资格考试 云南省医生晋升副高职称需要的条件 2011年云南省 评泌尿外科专业副主任医师级别职称考试的考纲是什么啊? 贴瓷砖用阳角条好看吗 手机温度太高有什么坏处? 玩原神导致手机主板烧坏可能性大吗? 手机发热会不会把主板搞坏 汽车功能分类标准 短期股票? 汽车功能安全的发展路径 什么叫股票走短 Linux字体如何加载? 挪威脚钉用在音响三大件哪个音质最好 挪威钉垫cd机与电子管功放好吗? 音响器材用什么样的“垫”才能有良好的避震效果 防踢垫影响音响效果吗 华为荣耀7混合密码忘记如何找回 学JAVA和ARM+LINUX哪个有前途?有工作经验的人请指教 天天做梦意味着什么?求解决办法。 为什么每天都会做梦?梦能预测什么?还是只能理解为&quot;日有所思夜有所梦&quot;?” 丝杠的导程有哪几种,导程对丝杠的哪些性能有影响,什么影响 丝杆的导程大好还是小好? 滚珠丝杠中的导程和行程都是什么意思? 滚珠丝杠中的导程和行程都是什么意思呢?有清楚的吗? 什么是滚珠丝杠导程? 丝杆导程的优点有哪些? 丝杆导程5mm坐标要求±0.02电机分辨率多少?
  • 焦点

最新推荐

猜你喜欢

热门推荐