gpt4 book ai didi

c# - 如何将字符串集合作为 TextReader 传递?

转载 作者:太空狗 更新时间:2023-10-29 23:00:22 30 4
gpt4 key购买 nike

我正在使用 CSVHelper 库,它只需三行代码就可以从 CSV 文件中提取对象列表:

var streamReader = // Create a reader to your CSV file.
var csvReader = new CsvReader( streamReader );
List<MyCustomType> myData = csvReader.GetRecords<MyCustomType>();

但是,by file 有无意义的行,我需要跳过文件中的前十行。我认为使用 LINQ 来确保“干净”数据,然后将该数据传递给 CsvFReader 会很好,如下所示:

public TextReader GetTextReader(IEnumerable<string> lines)
{
// Some magic here. Don't want to return null;
return TextReader.Null;
}
public IEnumerable<T> ExtractObjectList<T>(string filePath) where T : class
{
var csvLines = File.ReadLines(filePath)
.Skip(10)
.Where(l => !l.StartsWith(",,,"));
var textReader = GetTextReader(csvLines);
var csvReader = new CsvReader(textReader);
csvReader.Configuration.ClassMapping<EventMap, Event>();
return csvReader.GetRecords<T>();
}

但我真的坚持通过像 TextReaer 这样的流推送“静态”字符串集合。

我的替代方法是通过 CsvReader 逐行处理 CSV 文件并在提取对象之前检查每一行,但我发现这有点笨拙。

最佳答案

StringReader 类提供了一个包装字符串的 TextReader。您可以简单地加入行并将它们包装在 StringReader 中:

public TextReader GetTextReader(IEnumerable<string> lines)
{
return new StringReader(string.Join("\r\n", lines));
}

关于c# - 如何将字符串集合作为 TextReader 传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15727113/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com