【发布时间】:2020-11-02 10:31:53
【问题描述】:
我只是想问你是否有可能在读取 CSV 文件的过程中获取文件中所有字符的数量?我不想将文件加载到内存中两次(一次用于解析,第二次用于计数)。
我需要解析 CSV 文件,但还需要获取此文件中所有字符的数量(带分隔符)。有人知道如何以最有效的方式做到这一点吗?
using (TextReader stream = new StreamReader(file.OpenReadStream()))
{
CsvReader reader = new CsvReader(stream, GetCsvReaderOptions());
while (reader.Read())
{
//parsing
}
}
-
有一个选项可以遍历实际阅读器行中的所有字段 最后以分隔符增加长度(字段数== 分隔符数)。
-
我也有想法通过反射计算解析对象上的字符 (从对象中获取所有属性值)。
我认为这些选项不会有效。
提前致谢
【问题讨论】:
-
请定义:“字符”。你个人认为这意味着什么?与 Unicode 联盟相比,您认为 .NET CLR 对它的定义是什么?请注意,UTF-16
Char与单个离散字形不同。连字呢?还是在非规范化 Unicode 的情况下? -
@Dai 我想我的意思是文件中的任何字符(数字、字母、特殊字符、空格)
-
@Mateusz 这正是 Dai 的意思。在计算“字符”之前,您需要考虑提出的要点。
标签: c# asp.net-core csvhelper