跳过csv文件的第一行,因为它具有文件格式的空行

时间:2015-12-05 18:06:06

标签: c# csvhelper

下面是我的通用方法,它返回一个从csv文件上传Stream的对象列表,但我想跳过第一行,因为只有第二行csv的标题。请帮我修改这段代码从第二行

public static List<T> getList<T>(Stream str, T obj)
{            
    using (var reader = new StreamReader(str))
    {
        using (var csvReader = new CsvReader(reader))
        {
            csvReader.Read();
            csvReader.Configuration.TrimHeaders = true;
            csvReader.Configuration.TrimFields = true;
            csvReader.Configuration.IsHeaderCaseSensitive = false;
            csvReader.Configuration.IgnoreHeaderWhiteSpace = true;
            csvReader.Configuration.SkipEmptyRecords = true;
            return csvReader.GetRecords<T>().ToList();
        }
    }
}

2 个答案:

答案 0 :(得分:2)

看起来您正在使用CsvHelper。如果是这种情况,仅GetRecords方法就足以在没有标题的情况下映射结果,前提是T上的属性与数据中的标题名称匹配。

TL; DR;删除对csvReader.Read方法的调用,仅使用GetRecords方法。

using (var reader = new StreamReader(str))
using (var csvReader = new CsvReader(reader))
{
    csvReader.Configuration.TrimHeaders = true;
    csvReader.Configuration.TrimFields = true;
    csvReader.Configuration.IsHeaderCaseSensitive = false;
    csvReader.Configuration.IgnoreHeaderWhiteSpace = true;
    csvReader.Configuration.SkipEmptyRecords = true;
    return csvReader.GetRecords<T>().ToList();
}

答案 1 :(得分:0)

您可以使用“跳过”方法并指定要跳过的项目数。 像lst.Skip(1);