c# - 在 C# 中从 CSV 读取不同的值到 Datagridview
问题描述
我有一个 CSV 文件,其中 A 列将根据Image 1具有重复值。在这个 CSV 文件中,我只希望我datagridview
显示来自 A 列的不同值,并跳过标题为Name as per Image 1 的标题列。所以我datagridview
应该按照Image 2显示。
但是,使用下面的代码,datagridview 显示为Image 3。下面是我的代码。我正在使用Linq
和Csvhelper
。我使用了链接 1和链接 2作为参考。希望能得到一些帮助
1级
public string Name
{
get; set;
}
表格 3
private void Form3_Load(object sender, EventArgs e)
{
//Create Datatable
DataSet dts = new DataSet();
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Username", typeof(string));
//Read the data from the CSV file
StreamReader streamReader = new StreamReader(@"\Users\d_sim\Desktop\test.csv");
CsvReader reader = new CsvReader(streamReader);
reader.Configuration.Encoding = Encoding.UTF8;
reader.Configuration.Delimiter = ",";
//Make Class 1 into a list.
List<Class1> records = reader.GetRecords<Class2>().ToList();
//Only Read the applicable property and display in datagridview. IRL Class1 has many properties but I only include one in this question
var distinctbyproperty = records.GroupBy(x => x.Name).Select(x => x.First());
dataTable.Rows.Add(distinctbyproperty.ToString());
dts.Tables.Add(dataTable);
this.dataGridView1.DataSource = dataTable;
dataGridView1.AllowUserToAddRows = false;
}
解决方案
您的过滤工作正常。您只需将每一行单独添加到您的数据表中。
foreach (var item in distinctbyproperty)
{
dataTable.Rows.Add(item.Name);
}
推荐阅读
- r - 音频文件无法在 Shiny App 中正确加载
- angular - 添加新项目后未更新可观察表
- c# - 服务器重新启动或 IIS 重置后 Web 服务无法登录
- mysql - SQL - 获取不同的值及其在组中出现的频率计数
- javascript - 页面加载后 ReactJS 似乎无法调用函数
- python - 如何修复“IndexError:索引超出范围”
- jquery - 显示错误 angular.js:12477 TypeError: $(...).intlTelInput is not a function
- android - 使用模式启动谷歌地图方向意图
- python - 我在 python 中对齐结果时遇到问题
- kubernetes - 如何忽略错误 MountVolume.SetUp failed for volume "cofigmap-volume" : configmaps "configmap" not found