小编use*_*102的帖子

C#字典和高效的内存使用

我有一个工具来比较2个csv文件,然后将每个单元格装入6个桶中的一个.基本上,它读取csv文件(使用快速csv阅读器,信用:http://www.codeproject.com/KB/database/CsvReader.aspx),然后根据提供的密钥创建一个与每个文件有关的字典.用户.然后我遍历比较值并写入结果csv文件的字典.

虽然速度非常快,但在内存使用方面效率非常低.我无法比较我的盒子上超过150 MB的文件和3 GB的物理内存.

这是一个用于读取预期文件的代码段.在这篇文章的最后,任务管理器的内存使用量接近500 MB.

// Read Expected
long rowNumExp;
System.IO.StreamReader readerStreamExp = new System.IO.StreamReader(@expFile);
SortedDictionary<string, string[]> dictExp = new SortedDictionary<string, string[]>();
List<string[]> listDupExp = new List<string[]>();
using (CsvReader readerCSVExp = new CsvReader(readerStreamExp, hasHeaders, 4096))
{
    readerCSVExp.SkipEmptyLines = false;
    readerCSVExp.DefaultParseErrorAction = ParseErrorAction.ThrowException;
    readerCSVExp.MissingFieldAction = MissingFieldAction.ParseError;
    fieldCountExp = readerCSVExp.FieldCount;                
    string keyExp;
    string[] rowExp = null;
    while (readerCSVExp.ReadNextRecord())
    {
        if (hasHeaders == true)
        {
            rowNumExp = readerCSVExp.CurrentRecordIndex + 2;
        }
        else
        {
            rowNumExp = readerCSVExp.CurrentRecordIndex + 1; …
Run Code Online (Sandbox Code Playgroud)

c# dictionary memory-management

9
推荐指数
1
解决办法
5722
查看次数

C#N方式合并为外部排序

什么是为N个排序文件实现N路合并的最佳方法?

假设我有9个已排序的文件,每个文件有10个记录?如何合并这些文件以创建包含90个已排序记录的大文件?

c# sorting merge

6
推荐指数
3
解决办法
4406
查看次数

使用Excel Interop打开一个巨大的.csv文件

我有一个应用程序,写大型.csv文件大小从1 GB到2 GB.

我需要对文件进行颜色编码并将其另存为.xlsx.

所以我尝试使用Excel Interop,它适用于小文件,但是当我尝试用Excel打开一个1.3 GB的.csv文件时,我收到一个Hresult错误.

关于如何使用Excel完成此任务的任何想法,或者是否有任何其他方法可以完成此任务.

c# excel interop

0
推荐指数
1
解决办法
1122
查看次数

标签 统计

c# ×3

dictionary ×1

excel ×1

interop ×1

memory-management ×1

merge ×1

sorting ×1