c# - 如何在c#中从csv中提取标题
问题描述
我在 c# 中将几个 csv 文件加载并拆分为两个列表。现在我还需要使用 ; 从第一行中提取标题。作为delmiter
. 我正在尝试使用 .Skip(1) 命令,但这只会跳过(显然),但我需要提取标题,并在完成其余数据的工作后再次将其添加为第一行。
这是我到目前为止所尝试的:
string[] fileNames = Directory.GetFiles(@"read\", "*.csv");
for (int i = 0; i < fileNames.Length; i++)
{
string file = @"read\" + Path.GetFileName(fileNames[i]);
var lines = File.ReadLines(file).Skip(1);
(List<string> dataA, List<string> dataB) = SplitAllTodataAAnddataB(lines);
var rowLog = 0;
foreach (var line in dataA)
{
// Variablen für lines
string[] entries = line.Split(';');
rowLog++;
Helper.checkdataAString(entries[0].ToLower(), "abc", rowLog);
Helper.checkdataAString(entries[1].ToLower(), "firstname", rowLog);
Helper.checkdataAString(entries[2].ToLower(), "lastname", rowLog);
Helper.checkdataAString(entries[4].ToLower(), "gender", rowLog);
Helper.checkdataAString(entries[5].ToLower(), "id", rowLog);
Helper.checkdataAString(entries[3], "date", rowLog);
Helper.drawTextProgressBar("loaded rown", rowLog, dataA.Count());
}
Console.WriteLine("\nencryypting data");
var output = new List<string>();
foreach (var line in dataA)
{
try
{
string[] entries = line.Split(';');
string abc = entries[0].ToLower();
string firstName = koeln.GetPhonetics(entries[1]).ToLower();
string lastName = koeln.GetPhonetics(entries[2]).ToLower();
string date = entries[3];
//Hier werden die drei vorherigen Variablen konkatiniert.
string NVG = FirstName + "_" + LastName + "_" + BirthDate;
string gender = entries[4].ToLower();
string age = Helper.Left(Convert.ToString(20171027 - Convert.ToInt32(entries[3])), 2);
string zid = Guid.NewGuid().ToString();
string fid = entries[5].ToLower();
rowdataA++;
output.Add($"{abc}; {NVG}; {gender}; {age}; {zid}; {fid}");
Helper.drawTextProgressBar("encrypted rows.", rowdataA, dataA.Count());
}
catch { rowdataA++; }
}
File.WriteAllLines(fileTest, output);
}
我对开发有点陌生,所以我只是在尝试,任何帮助都将不胜感激。
解决方案
您可以这样读取文件:
string file = @"read\" + Path.GetFileName(fileNames[i]);
var content = File.ReadLines(file);
var header = content.ElementAt(0);
var lines = content.Skip(1);
推荐阅读
- amazon-web-services - 使用 Terraform 迭代对象内的列表
- python - Python内存泄漏解决方法
- constructor - 在 Coldfusion 中使用变量范围定义常量是一种好习惯吗?
- c++ - 在 C++ 上练习
- android - 如何在 Android Kotlin 中获取彩信/多媒体消息详细信息?
- signature - 尝试使用 hmac 和 sha256 验证 webhook 机密
- javascript - DISCORD.JS 创建一个小的等待反应函数
- c# - 获取静态类的第 n 个属性“C#?
- python - 在 Instagram 中收集用户名
- python - Opencv 在我的笔记本电脑上为我的项目工作,但停止在树莓派上工作