首页 > 编程语言 >C# 对DataTable 的某一列进行去重,并保留其他列,其他列不去重(转)

C# 对DataTable 的某一列进行去重,并保留其他列,其他列不去重(转)

时间:2024-06-14 10:22:08浏览次数:6  
标签:列不去 Rows Name C# Add table DataTable row

可以使用 LINQ 来对 DataTable 的某一列进行去重操作,并同时保留其他列。以下是一个示例代码:

using System;
using System.Data;
using System.Linq;

class Program
{
static void Main()
{
// 创建一个示例的 DataTable
DataTable table = new DataTable();
table.Columns.Add("Id", typeof(int));
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Age", typeof(int));

table.Rows.Add(1, "Alice", 25);
table.Rows.Add(1, "Bob", 30);
table.Rows.Add(1, "Alice", 28);
table.Rows.Add(1, "Charlie", 35);
table.Rows.Add(1, "Bob", 32);

// 对 Name 列进行去重
var distinctRows = table.AsEnumerable()
.GroupBy(row => row.Field<string>("Name"))
.Select(group => group.First());

// 创建一个新的 DataTable 存储去重后的结果
DataTable distinctTable = table.Clone();
foreach (var row in distinctRows)
{
distinctTable.ImportRow(row);
}

// 输出去重后的结果
foreach (DataRow row in distinctTable.Rows)
{
Console.WriteLine($"{row["Id"]}\t{row["Name"]}\t{row["Age"]}");
}
}
}


原文链接:https://blog.csdn.net/m0_60580105/article/details/132587811

标签:列不去,Rows,Name,C#,Add,table,DataTable,row
From: https://www.cnblogs.com/xihong2014/p/18247272

相关文章

  • docker /var/lib/docker/overlay2目录怎么清除
    docker/var/lib/docker/overlay2目录怎么清除Docker使用overlay2存储驱动时,镜像、容器、卷和网络等数据存储在/var/lib/docker/overlay2目录下。如果这个目录占用空间过大,可以通过删除无用的镜像、容器和卷来清理。以下是清理/var/lib/docker/overlay2目录的步骤:停......
  • cc2/4链:针对commons-collections4的攻击
    cc2/4是干嘛的cc2、cc4针对的commons-collections4版本大于4.0(含)入口略有不同,后续和cc3一样通过TemplatesImpl加载恶意字节码调用链PriorityQueue.readobjectPriorityQueue的反序列化方法调用了heapify()heapifyheapify()调用了siftDown可以看见元素需要大于两个,所以我们......
  • 界面组件DevExpress Office File API - 如何用OpenAI增强文档可访问性(二)
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......
  • 解锁LLMs的“思考”能力:Chain-of-Thought(CoT) 技术推动复杂推理的新发展
    解锁LLMs的“思考”能力:Chain-of-Thought(CoT)技术推动复杂推理的新发展1.简介Chain-of-Thought(CoT)是一种改进的Prompt技术,目的在于提升大模型LLMs在复杂推理任务上的表现,如算术推理(arithmeticreasoning)、常识推理(commonsensereasoning)、符号推理(symbolicreasoning)。起......
  • 密码管理工具Buttercup
     如果你在寻找一款优先考虑本地使用的密码管理器,那么Buttercup 就是一个针对macOS、Linux和Windows的理想选择。如果你不需要云同步功能,但希望寻找一款与KeePass用户体验不同的密码管理器,那么Buttercup将是一个好的替代品。这是一个带有简洁用户界面的跨平台开源密......
  • GEE C28 在GEE中使用脚本和资源协作 Collaborating in Earth Engine with Scripts a
    导语:许多用户发现自己在某些时候需要与地球引擎中的其他人协作。学生可能需要在一个小组项目中工作,来自不同组织的人可能想要一起合作进行研究,或者人们可能想要与他人共享他们创建的脚本或资产。将展示如何与他人协作并分享工作。学习要点:•了解何时共享脚本或资产是重要的。......
  • 一文读懂多模态大模型的LLM主干(1):ChatGLM系列
    〔探索AI的无限可能,微信关注“AIGCmagic”公众号,让AIGC科技点亮生活〕本文作者:AIGCmagic社区  刘一手前言AI多模态大模型发展至今,每年都有非常优秀的工作产出,按照当前模型设计思路,多模态大模型的架构主要包括以下几个部分:模态编码器(ModalityEncoder,ME):负责将不同......
  • LeetCode刷题之HOT100之二叉树的遍历
    2024/6/14这几天总是下雨,天气预报上面显示这个月都要持续下雨,下雨天了怎么办?我好想你,不敢打给你,我找不到原因。说着说着唱起来了哈哈!Anyway,昨天晚上打开了《涅朵奇卡一个女人的一生》,这本篇幅不长的小说我很久前就想看,还是从王小波那里知道的这本书,才开始看陀思妥耶夫斯基,......
  • STM学习记录(四)———中断及NVIC
    文章目录前言一、中断1.中断的定义2.中断的优先级3.中断嵌套二、STM32中断总结前言一个学习32单片机的小白~有问题评论或私信指出~提示:以下是本篇文章正文内容,下面案例可供参考一、中断1.中断的定义在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU......
  • 【RSMamba安装】pip install causal-conv1d和pip install mamba-ssm解决方法[亲测有效
    问题描述:在安装Mamba的过程中,我们会根据教程安装依赖项:pipinstallcausal-conv1d和pipinstallmamba-ssm,在绝大多数情况下,都会报错以下内容:error:subprocess-exited-with-errorerror:metadata-generation-failed❌Encounterederrorwhilegeneratingpackagem......