获取中的特定行和列值。C # 中的 csv 文件

共3个回答, 标签: c# csv

我有一个。Csv 文件,如下所示:

索引、时间、值
1,0,20
2,1,30

我想做的是打开。Csv 文件在 C # 中,然后通过获取读取它row = 0, column = 0 which would give me value 1在上述情况下。很像这样:

公共双 GetVal (int 行,int 列)
{
.
返回值;
}

我已经寻找了一个解决方案,例如这个:从 csv 文件中特定列下的行中删除值

但是我需要能够在函数中指定列和行以获得特定的值。

第1个答案
第2个答案
    Quick answer, without considering the performance issue (e.g. the file read should happen once, and other issue like index checking to avoid overflows.
公共双 GetVal (int 行,int 列)
{
双输出;
使用 (var reader = new StreamReader ("filename.csv")
{
Int m = 1;
而 (!读者。EndOfStream)
{
如果 (m = = 行)
{
Var 拆分 = rd.ReadLine ().Split (',' ';
//您需要检查索引以避免溢出
Output = double.Parse (拆分 [列]);
返回输出;
}

M;
}
}
返回输出;
}
第3个答案
    In case CSV file is simple one (no quotations), you can try Linq:
使用 System.IO;
使用 System.Linq;

.

公共双 GetVal (int 行,int 列) {
返回文件
。ReadLines (@ "c: \ MyFile.csv")//TODO: 在此处输入正确的名称
。跳过 (1)//跳过标题行
。跳过 (行)
。选择 (line => double.Parse (line.Split (',') [列])
。第一 ();
}

注意,这个代码再读文件; 您可能想要读取该文件一次:

双 [] m_Data = 文件
。ReadLines (@ "c: \ MyFile.csv")
。跳过 (1)
。选择 (行 => 行
。分割 (',')
。选择 (item => double.Parse (item))
。ToArray ()
。ToArray ();

.

公共双 GetVal (int 行,int 列) => m_Data [行];

相关问题

什么是 Null 引用异常, 以及如何修复它? 什么是 Null 引用异常, 以及如何修复它? 如何将 bool 更改为0或 1, 我可以将其转换为0或1? 获取中的特定行和列值。C # 中的 csv 文件 如何定义 Raku 语法来解析 TSV 文本? 无法在 jupyter,windows 10 中打开 csv 文件,即使该文件存在