在datagridview c#windows应用程序中显示数组的字符串

本文关键字:数组 字符串 显示 datagridview c#windows 应用程序 | 更新日期: 2023-09-27 18:26:01

大家好,我有以下代码用于在c#Windows应用程序中显示从.csv文件到datagridview(有三列"编号"、"日期"answers"消息")的记录。

 var lines = File.ReadAllLines("E:''messages.csv").Select(a => a.Split(',')).ToList();
 foreach (string[] s in lines)
 {
    dataGridView1.Rows.Add(s[2], s[5], s[7]);
 }

它对","的前7次出现很好,但我在.csv文件中的其他行有超过7次的",",所以我希望在7之后出现的所有","都应该与数据网格视图名称中第三列的第7次合并为消息

.csv文件中一行的示例

短信,交付,"+9919999999999",",",","2013.08.01 09:40","以下孟买公寓出租:SHIKHA,SHANJ附近,卡特路外,哈尔花园面临1500平方英尺。2小时通知检查。--Rohit J."

在datagridview c#windows应用程序中显示数组的字符串

您可以使用Split的重载,它允许您选择要返回的元素数量(在这种情况下为7)。

var lines = File.ReadAllLines("E:''messages.csv")
                             .Select(a => a.Split(new[] {','}, 7)).ToList();
foreach (string[] s in lines)
{
   dataGridView1.Rows.Add(s[2], s[5], s[6]);
}

尝试

var lines = File.ReadAllLines("E:''messages.csv").Select(a => a.Split(',',7)).ToList();

通过简单的逗号分隔来读取/解析CSV是个坏主意。考虑下表:

第1栏第2栏第3栏你好,我很好你好,世界你还好吗是的,我还好

CSV看起来像:

第1列、第2列、第3列你好,你好,我很好"你好,世界",你还好吗,是的,我还好

用逗号分隔会使第二行变绿。嵌套的引号和换行符使工作更加困难。

相反,不要麻烦重新发明轮子,而是使用解析器。看看这个问题或这个问题的答案,寻求一些建议。