我正在阅读一个 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,Age300,10319,11100,1370,9在这种情况下,输出将是List<Cow>第一个条目的值为 "Weight": "300" 和 "Age": "10" 显然,但如果 "Weight" 和 "Age" 颠倒怎么办?然后我会将错误的值分配给错误的变量。基本上,我想用头确定是否将values[0]进入weight或age等,我想我不能保证这是第一位的,我读了CSV。
                    
                    
                3 回答
                            繁星淼淼
                            
                                
                            
                        
                        
                                                
                    TA贡献1775条经验 获得超11个赞
您可以存储标题索引,例如:
int weightIndex = Array.FindIndex(values, v => v == "Weight");
int ageIndex = Array.FindIndex(values, v => v == "Age");
然后按如下方式访问值:
cows.Add(new Cow(
weight: values[weightIndex],
age: values[ageIndex]));
- 3 回答
 - 0 关注
 - 163 浏览
 
添加回答
举报
0/150
	提交
		取消
	