C# 从CSV文件中提取数据 保存到 IEnumerable<object[]{string[]}>变量中,其中object[]数组保存的是csv文件中每行索引,string[]数组保存的是每行具体数据,现在我向根据csv文件中第11列进行去重(如果第11列出现重复数据,这删除这行数据)
时间: 2023-12-26 18:03:19 浏览: 166
您可以使用以下代码从CSV文件中提取数据并进行去重操作:
```csharp
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Program
{
static void Main(string[] args)
{
string filePath = "path/to/your/csv/file.csv";
IEnumerable<object[]> data = ExtractDataFromCSV(filePath);
data = RemoveDuplicates(data, 10); // 第11列的索引为10
// 打印去重后的数据
foreach (var row in data)
{
Console.WriteLine(string.Join(", ", row[10]));
}
}
static IEnumerable<object[]> ExtractDataFromCSV(string filePath)
{
var data = new List<object[]>();
using (var reader = new StreamReader(filePath))
{
while (!reader.EndOfStream)
{
string[] line = reader.ReadLine().Split(',');
object[] row = line.Cast<object>().ToArray();
data.Add(row);
}
}
return data;
}
static IEnumerable<object[]> RemoveDuplicates(IEnumerable<object[]> data, int columnIndex)
{
var uniqueData = new HashSet<string>();
var filteredData = new List<object[]>();
foreach (var row in data)
{
string value = row[columnIndex].ToString();
if (!uniqueData.Contains(value))
{
uniqueData.Add(value);
filteredData.Add(row);
}
}
return filteredData;
}
}
```
请将 `path/to/your/csv/file.csv` 替换为您的实际CSV文件路径。以上代码将从CSV文件中提取数据,并根据第11列进行去重操作。去重后的数据存储在 `IEnumerable<object[]>` 变量中,其中 `object[]` 数组保存了每行的索引,`string[]` 数组保存了每行的具体数据。
阅读全文