Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在导入到datagrid或datatable之前,如何从c#winform中的csv文件中删除重复的Id和名称_C# - Fatal编程技术网

在导入到datagrid或datatable之前,如何从c#winform中的csv文件中删除重复的Id和名称

在导入到datagrid或datatable之前,如何从c#winform中的csv文件中删除重复的Id和名称,c#,C#,这是我的代码,现在它只删除重复的ID,但我想从行中删除重复的ID和名称这是我的CSV文件 我想在导入之前删除重复项 导入前从CSV中删除重复项 名称空间导出\u导入\u CSV { 公共部分类Form1:Form { 公共表格1() { 初始化组件(); 这是BindDataGridView(); } DataTable dt=新的DataTable(); 私有无效导入单击(对象发送方,事件参数e) { dt.Rows.Clear(); OpenFileDialog dlg=新建OpenFi

这是我的代码,现在它只删除重复的ID,但我想从行中删除重复的ID和名称
这是我的CSV文件

我想在导入之前删除重复项

导入前从CSV中删除重复项

名称空间导出\u导入\u CSV
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
这是BindDataGridView();
}
DataTable dt=新的DataTable();
私有无效导入单击(对象发送方,事件参数e)
{
dt.Rows.Clear();
OpenFileDialog dlg=新建OpenFileDialog();
dlg.Multiselect=true;
如果(DialogResult.OK==dlg.ShowDialog())
{
字符串路径=dlg.FileName;
//绑定数据(路径);
AddCSVDataToGrid(路径);
MessageBox.Show(“导入操作已完成”);
}
}
私有void BindData(字符串文件路径)
{
string[]Lines=System.IO.File.ReadAllLines(文件路径);
string[]lines=lines.Distinct().ToArray();
if(Lines.Length!=Lines.Length)
{
Show(“找到重复数据,忽略csv文件中的重复数据”);
}
如果(lines.Length>0)
{
字符串[]数据字;
数据行dr;
对于(int i=1;i
通过使用两个
哈希集(一个用于
Id
,一个用于名称),我们可以检查是否已经出现了一个Id或名称

string[]lines=System.IO.File.ReadAllLines(filePath);
HashSet id=newhashset()
HashSet name=新的HashSet();
bool hasrerror=false;
字符串[]数据字;
数据行dr;
对于(int i=1;i
//在列表中追加内容时,请确保已修剪该行

string[] Lines = System.IO.File.ReadAllLines(filePath);
 string[] lines = Lines.Distinct().ToArray();
 string[] duplicateLines = Lines.Except(lines);

if(duplicateLines.Count()>0)
{
   MessageBox.Show("duplicates data found,Ignored duplicates data from csv file");
}

您需要提供“重复”的定义以及如何“决定”哪一项是重复项。例如,如果您对“重复”的定义是“ID和名称”…则您发布的数据中没有重复项。“1,Manish,Pandey”和“3,Manish,Pandey”将不被视为“重复”由于一个ID是1,另一个ID是3。这同样适用于“4,William…和3,William…”另一个难题是,如果您确定“1,Manish,Pandey”和“3,Manish,Pandey”是重复的,因为名称相同,那么您如何“决定”要扔掉哪一个?ID应该是1还是3?同样的想法也适用于3和4个“william sor”名称。你能描述一下你如何定义一个副本,以及你如何决定保留哪一个。显然,如果两者都有相同的“精确”名称如果你不想把国家/地区包括在内,那么你删除哪一个就无关紧要了。你能澄清一下吗?我的要求是,ID应该是唯一的,并且特定行数据的剩余列数据也应该是唯一的,例如1,Manish,Pandey,Morroco,具有相同的数据,没有重复。即使我也不知道如何做到这一点如果ID是唯一的,将使用Distict或loops删除。请点击此按钮
string[] Lines = System.IO.File.ReadAllLines(filePath);
 string[] lines = Lines.Distinct().ToArray();
 string[] duplicateLines = Lines.Except(lines);

if(duplicateLines.Count()>0)
{
   MessageBox.Show("duplicates data found,Ignored duplicates data from csv file");
}