在csv文件中使用字符串拆分和数组的LINQ问题

时间:2010-03-05 17:38:02

标签: c# linq

鉴于以下代码:

            var query = from line in ClientCount()
                    let aLine = line.Split(",")
                    where aLine.GetValue(1) != 0
                    select aLine;

要查询csv文件,aLine.GetValue(1)将获取.csv文件中的第1行(0之后)或第1个字符串,例如:

abc,def

因此得到def?我想得到def,但是我还想在这样的文件中选择title2:

title,title2

abc,def

我该怎么做?

BTW我知道这有LINQ To CSV,但我自己也是这样做的。

由于

2 个答案:

答案 0 :(得分:3)

所以,如果我正确地读到这个,你想得到一对“title2”,“def”;或者以其他方式放置,你想得到column1的值。您对LINQ所需的唯一更改如下:

var query = from line in ClientCount()
    let aLine = line.Split(new[] { ',' })
    where aLine.GetValue(1) != "0"
    select aLine.GetValue(1);

这将排除第二列的值为“0”的行,这是我假设您尝试执行的操作。此代码编译并运行并为您指定的集合提供值为“def”和“title2”的IEnumerable。

答案 1 :(得分:1)

虽然练习一切都很好,但CSV实际上比名称更复杂 - 你引用/不引用,多线,以及在某些地区“c”成为一个时期的可怕问题(“ “)。

强烈建议您使用预先滚动的内容,例如CsvReader

(幸运的是TSV通常不那么讨厌)