我有一个csv文件,我需要一次读取一行并从中填充.net对象(第一行标题)。
现在,我知道我可以通过
SELECT COALESCE(NULL,NULL,NULL,'abc',NULL,'def'); returns abc
SELECT COALESCE(NULL,NULL,NULL); returns NULL
然后分配对象属性,但我想知道是否有更短的方法。
我尝试使用LINQ但读取了所有行ReadLine
请提供建议。感谢。
答案 0 :(得分:1)
是的伊万说,使用ReadLines()
在一次访问中读取标题和数据,您可以使用旧学校的枚举器:
static void Main(string[] args)
{
var enumerator = File.ReadLines("foo.csv").GetEnumerator();
enumerator.MoveNext();
string headerLine = enumerator.Current; // null if file empty
while (enumerator.MoveNext())
{
string dataLine = enumerator.Current;
}
}
或在标题之后,您可以将枚举器转换为IEnumerable<>回:
static IEnumerable<T> AsEnumerable<T>(IEnumerator<T> enumerator)
{
while (enumerator.MoveNext()) yield return enumerator.Current;
}
并用var query = AsEnumerable(enumerator);