当前位置: 首页 > news >正文

c#读取csv文件中的某一列的数据

chat8 (chat779.com)

上面试GPT-3.5,很好的浏览网站,输入问题,可得到答案。

问题1:c#如何在csv中读取某一列数据

解答方案:在 C#中,你可以使用File.ReadAllLines来读取CSV中的所有行,然后逐行解析每一行的列数据。

using System;
using System.IO;class Program
{static void Main(){// 指定CSV文件的路径string csvFilePath = "path/to/your/file.csv";// 指定要读取的列号int targetColumnNumber = 2; // 例如,要读取第二列// 调用ReadCsvColumn方法,传入文件路径和目标列号string[] targetColumn = ReadCsvColumn(csvFilePath, targetColumnNumber);// 打印目标列的内容Console.WriteLine("Target Column:");Console.WriteLine(string.Join(Environment.NewLine, targetColumn));}static string[] ReadCsvColumn(string filePath, int columnNumber){// 读取CSV文件的所有行string[] allLines = File.ReadAllLines(filePath);// 创建一个列表来存储目标列的数据var targetColumn = new List<string>();// 遍历每一行,解析目标列的数据foreach (var line in allLines){// 使用逗号分隔符解析CSV行string[] columns = line.Split(',');// 确保目标列号在有效范围内if (columnNumber > 0 && columnNumber <= columns.Length){// 获取目标列的数据并添加到列表中targetColumn.Add(columns[columnNumber - 1]);}else{// 列号无效,你可以选择抛出异常或者采取其他处理方式// 这里演示的是将空字符串添加到列表中targetColumn.Add(string.Empty);}}// 返回目标列的数据return targetColumn.ToArray();}
}

在这个例子中,ReadCsvColumn方法接受文件路径和目标列号作为参数,使用File.ReadAllLines读取整个CSV文件,然后遍历每一行,解析目标列的数据。请注意,这个例子使用逗号作为CSV文件的分隔符,你可能根据实际情况调整分割符。

同样,记得在实际应用中可能出现的异常,例如文件不存在、列号无效等。

现在分解上面示例的代码到项目中,调整了下:

 private void button3_Click(object sender, EventArgs e){// 制定CSV文件的路径 // 修改了地址,读取了自己的csv文件string csvFilePath = "F:\\读取csv\\110811.csv";//指定要读取的列号 //修改了自己要读去的列号int targetColumnNumber = 7; // 例如要读取第7列// 调用ReadCsvColumn方法,传入文件路径和目标列号string[] targetColumn = ReadCsvColumn(csvFilePath, targetColumnNumber);// 打印目标列的内容Console.WriteLine("Target Column:");Console.WriteLine(string.Join(Environment.NewLine, targetColumn));// 将读到的列的内容 //增加了将目标列号第一行读入到文本框中richTextBox2.Text = targetColumn[1];}

将ReadCsvColumn方法函数未作修改,直接复制到窗体代码中,注意,不是复制到按钮代码中。

static string[] ReadCsvColumn(string filePath, int columnNumber)
{// 读取CSV文件的所有行 // 这里的ReadAllLines改为System.IO.File.ReadAllLines,否则
//会报错,并且增加Encoding.GetEncoding("GBK")来防止读取的中文数据是错误码!!!string[] allLines = System.IO.File.ReadAllLines(filePath, Encoding.GetEncoding("GBK"));// 创建一个列表来存储目标列的数据var targetColumn = new List<string>();// 遍历每一行,解析目标列的数据foreach (var line in allLines){//使用逗号分隔符解析CSV行string[] columns = line.Split(',');// 确保目标列号在有效范围内if (columnNumber > 0 && columnNumber <= columns.Length){// 获取目标列的数据并添加到列表中targetColumn.Add(columns[columnNumber - 1]);}else{// 列号无效,你可以选择抛出异常或者采取其他处理方式// 这里演示的是将空字符串添加到列表中targetColumn.Add(string.Empty);}}// 返回目标列的数据return targetColumn.ToArray();
}

这样就可以实现将一个csv文件中的数据读取到winform窗体中的作用。

代码详解:

C#中的var关键字,转载于http://t.csdnimg
.cn/TdUca

var是3.5新出的一个定义变量的类型,其实也就是弱化类型的定义,var可代替任何类型,编译器会根据上下文来判断你到底是想用什么类型的,至于什么情况下用到var,当无法确定自己将用的是什么类型,就可以使用var,类似object但是效率比object高。

举个例子:假如现在遍历一个数组,此时我们不知道数组中存储的数据类型是什么,此时使用var关键字就合适。

或者通俗的讲:var可以理解为匿名类型,我们可以认为它是一个声明变量的占位符,它主要用于在声明变量时,无法确定数据类型时使用。

使用var定义变量的特点

1.在定义变量的时候,必须先给值,不能为null,也不能只定义不给值,必须是var s = "abcd"的形式,而不能是如下形式:var s; s = "abcd";

2. 一旦初始化完成,就不能再给变量赋与初始化值类型不同的值了。

3. var要求是局部变量,无法使用var来定义一个全局变量,只能定义在方法的内部(因为预先不可知,所以预先不可置)。

4. 使用var定义变量和object不同,他在效率和使用强类型方式定义变量完全一样。

5.不能用来定义函数的签名,包括返回值,参数类别。

new List<string>()

创建一个空列表

http://www.lryc.cn/news/295064.html

相关文章:

  • 不懂快团团大团长对接?凭什么快团团的钱轮到你赚?
  • OpenGL 入门(九)—Material(材质)和 光照贴图
  • jmeter-03界面介绍
  • 探究 MySQL 中使用 where 1=1 是否存在性能影响
  • VSCode无法启动:Waiting for server log...
  • VMware虚拟机清理瘦身
  • Coil:Android上基于Kotlin协程的超级图片加载库
  • 时间序列(Time-Series)MultiWaveletCorrelation.py代码解析
  • C++的缺省参数和函数重载
  • nginx upstream server主动健康检测模块ngx_http_upstream_check_module 使用和源码分析(上)
  • 第01课:自动驾驶概述
  • Docker进阶篇-CIG重量级监控系统
  • 鸿蒙踩坑合集
  • Golang-Map有序输出——使用orderedmap库实现
  • 基础数学问题整理
  • 【Linux】环境基础开发工具的使用(一)
  • 突破编程_C++_面试(基础知识(5))
  • 十分钟掌握Go语言==运算符与reflect.DeepEqual函数处理interface{}值的比较规则
  • Unity3d Shader篇(一)— 顶点漫反射着色器解析
  • WordPress主题YIA的文章页评论内容为什么没有显示出来?
  • 选择低代码应该注意什么?如何选择?
  • 橘子学linux调优之工具包的安装
  • 函数的连续与间断【高数笔记】
  • 游戏如何选择服务器
  • ubuntu20安装mysql8
  • 07 SB3之@HttpExchange(TBD)
  • Redis数据淘汰策略
  • Git的一些基本操作
  • Spring Boot中异步线程池@Async
  • ArcGIS学习(五)坐标系-2