我正在阅读一个 CSV 文件,并且基本上是尝试使用标题来确定文件中值的顺序位置,尽管最后一部分给我带来了一些麻烦。以下是我到目前为止所拥有的:
private static IEnumerable<Cow> ReadCowStream(Stream source)
{
bool isHeader = true;
var cows = new List<Cow>();
using (var reader = new StreamReader(source))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
if (line != null)
{
var values = line.Split(',');
if (isHeader && values.Contains("Weight") && values.Contains("Age"))
{
isHeader = false;
}
else
{
cows.Add(new Cow(
weight: values[0],
age: values[1]));
}
}
}
}
return animals;
}
示例 CSV:
Weight,Age
300,10
319,11
100,1
370,9
在这种情况下,输出将是List<Cow>第一个条目的值为 "Weight": "300" 和 "Age": "10" 显然,但如果 "Weight" 和 "Age" 颠倒怎么办?然后我会将错误的值分配给错误的变量。
基本上,我想用头确定是否将values[0]进入weight或age等,我想我不能保证这是第一位的,我读了CSV。
繁星淼淼
相关分类