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.mzph.cn/news/671054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask+vue+python跨区通勤人员健康体检预约管理系统

跨区通勤人员健康管理系统设计的目的是为用户提供体检项目等功能。 与其它应用程序相比&#xff0c;跨区通勤人员健康的设计主要面向于跨区通勤人员&#xff0c;旨在为管理员和用户提供一个跨区通勤人员健康管理系统。用户可以通过系统及时查看体检预约等。 跨区通勤人员健康管…

Linux 分析指定JAVA服务进程所占内存CPU详情

1、获取服务进程PID [rootVM-32-26-centos ~]# service be3Service status Application is running as root (UID 0). This is considered insecure. Running [25383]2、获取进程占用详情 [rootVM-32-26-centos ~]# cat /proc/25383/status Name: java Umask: 0022 State: S…

Linux 文件比较工具

在Linux系统中&#xff0c;文件比较是一种常见的任务&#xff0c;用于比较两个文件之间的差异。文件比较可以帮助我们找出两个文件的不同之处&#xff0c;或者确定它们是否完全相同。在Linux中&#xff0c;有多种方法可以进行文件比较。 1. diff 在Linux中&#xff0c;diff命…

啤酒:精酿啤酒与冷盘的清新搭配

在夏日的傍晚&#xff0c;当太阳逐渐西沉&#xff0c;微风轻轻拂过&#xff0c;与亲朋好友围坐在一起&#xff0c;享受Fendi Club啤酒与冷盘的清新搭配&#xff0c;无疑是一种生活的享受。这两者的结合&#xff0c;不仅为味蕾带来了全新的体验&#xff0c;更为我们带来了片刻的…

24、数据结构/排序相关练习20240206

一、现有无序序列数组为{23,24,12,5,33,5,34,7}&#xff0c;请使用以下排序实现编程。 函数1&#xff1a;请使用冒泡排序实现升序排序 函数2&#xff1a;请使用简单选择排序实现升序排序 函数3&#xff1a;请使用快速排序实现升序排序 函数4&#xff1a;请使用插入排序实现…

记录 | linux下切换python版本

查看系统中存在的 python 版本 ls /usr/bin/python* 查看系统默认的 python 版本 python --version

《Git 简易速速上手小册》第3章:分支管理(2024 最新版)

文章目录 3.1 创建与合并分支3.1.1 基础知识讲解3.1.2 重点案例&#xff1a;为 Python 项目添加新功能3.1.3 拓展案例 1&#xff1a;使用 Pull Requests (PRs) 在团队中合作3.1.4 拓展案例 2&#xff1a;解决合并冲突 3.2 分支策略的最佳实践3.2.1 基础知识讲解3.2.2 重点案例&…

git合入的parents和child

最近在管理代码&#xff0c;有2的权限&#xff0c;看到一些以前1看不到的东西。 有时候会遇到多个人基于同一节点提交代码&#xff0c;那就要选择先合入和后合入&#xff0c;如果这多人修改到同一个文件同一个地方&#xff0c;就可能产生冲突&#xff0c;一般要避免这种情况出…

Python进阶----在线翻译器(Python3的百度翻译爬虫)

目录 一、此处需要安装第三方库requests: 二、抓包分析及编写Python代码 1、打开百度翻译的官网进行抓包分析。 2、编写请求模块 3、输出我们想要的消息 三、所有代码如下&#xff1a; 一、此处需要安装第三方库requests: 在Pycharm平台终端或者命令提示符窗口中输入以下代…

可解释性AI(XAI)的主要实现方法和研究方向

文章目录 每日一句正能量前言主要实现方法可解释模型模型可解释技术 未来研究方向后记 每日一句正能量 当你还不能对自己说今天学到了什么东西时&#xff0c;你就不要去睡觉。 前言 随着人工智能的迅速发展&#xff0c;越来越多的决策和任务交给了AI系统来完成。然而&#xff…

必看!嵌入式基于UART的通信协议-RS232、RS485协议解析

这两种都是串口通讯的变种&#xff0c;为了提升串口通信的距离和稳定性。通常来说&#xff0c;正常的串口通信使用的是TTL电平&#xff0c;即高电平为2.4-5V&#xff0c;低电平为0-0.4V。高低电平之间的范围很小&#xff0c;如果有静电或者其他外界的干扰&#xff0c;很快会将低…

BT656视频传输标准

前言 凡是做模拟信号采集的&#xff0c;很少不涉及BT.656标准的&#xff0c;因为常见的模拟视频信号采集芯片都支持输出BT.656的数字信号&#xff0c;那么&#xff0c;BT.656到底是何种格式呢&#xff1f; 本文将主要介绍 标准的 8bit BT656&#xff08;4:2:2&#xff09;YCbC…

十分钟掌握前端获取实时数据的三种主流方式

前端获取实时数据的三种主流方式 本文聊聊前端获取实时数据的三种主要方式。想象一下&#xff0c;我们在网上购物时&#xff0c;经常能看到最新的优惠信息弹出&#xff0c;或者在社交媒体上看到朋友的最新动态更新。这些都是因为后端在默默地向我们的页面推送了最新的消息。那…

22.HarmonyOS App(JAVA)位置布局PositionLayout使用方法

不常用 在PositionLayout中&#xff0c;子组件通过指定准确的x/y坐标值在屏幕上显示。(0, 0)为左上角&#xff1b;当向下或向右移动时&#xff0c;坐标值变大&#xff1b;允许组件之间互相重叠 布局方式 PositionLayout以坐标的形式控制组件的显示位置&#xff0c;允许组件相…

【C++】win11,OpenCV安装教程(VS2022)

1.下载 首先进入官网&#xff0c;下载对应的安装包&#xff0c;苹果系统就选IOS pack&#xff0c;微软系统就选Windows 下载地址&#xff1a;Releases - OpenCV 不方便外网下载的话可以下载我分享的百度网盘资源&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1lV7l…

rhel8静态ip配置

1.先cd进来 2.把默认的dhcp改成static IPADDR192.168.211.22 22随意改&#xff0c;255以下的数字都行&#xff0c;1和255不要用 GATEWAY192.168.211.2和虚拟机默认网关保持一致 重启网络 nmcli c reload和 nmcli c up ens160 ping百度测试--&#xff08;成功了&#xff0…

如何在Linux中安装新版的Python软件

一、引言 Python是目前世界上最为流行的编程语言&#xff0c;其在人工智能领域表现尤为出色。通常&#xff0c;我们为了测试github上面的一些项目&#xff0c;比如&#xff1a;chat-on-wechat&#xff0c; 我们就可以在vps上的Linux系统中安装Python&#xff0c;从而实现各种人…

CentOS镜像如何下载?在VMware中如何安装?

一、问题 CentOS镜像如何下载&#xff1f;在VMware中如何安装&#xff1f; 二、解决 1、CentOS镜像的下载 &#xff08;1&#xff09;官方网站 The CentOS Project &#xff08;2&#xff09;官方中文官网 CentOS 中文 官网 &#xff08;3&#xff09;选择CentOS Linux…

92.网游逆向分析与插件开发-游戏窗口化助手-显示游戏数据到小助手UI

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;游戏窗口化助手的UI设计-CSDN博客 码云地址&#xff08;游戏窗口化助手 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;e8116af3a7b0186adba…

初识C语言·编译与链接

1 翻译环境和运行环境 C语言标准ANSI C 实现C语言代码的时候 一般需要经过两种环境&#xff0c;一是翻译环境&#xff0c;二是运行环境&#xff0c;计算机能识别的是二进制的指令&#xff0c;人写完代码后通过翻译环境&#xff0c;使代码变成计算机能读懂的可执行的机器指令&a…