C# 异常处理继续出错

标签 c# exception csv

我有一个基本的 C# 控制台应用程序,它逐行读取文本文件(CSV 格式)并将数据放入哈希表中。该行中的第一个 CSV 项目是键(id num),该行的其余部分是值。但是我发现我的导入文件有一些不应该有的重复键。当我尝试导入文件时,应用程序出错,因为哈希表中不能有重复的键。我希望我的程序能够处理这个错误。当我遇到一个重复的键时,我想将该键放入一个数组列表中,然后继续将其余数据导入到哈希表中。我如何在 C# 中执行此操作

这是我的代码:


private static Hashtable importFile(Hashtable myHashtable, String myFileName) {

        StreamReader sr = new StreamReader(myFileName);
        CSVReader csvReader = new CSVReader();
        ArrayList tempArray = new ArrayList();
        int count = 0;

        while (!sr.EndOfStream)
        {
            String temp = sr.ReadLine();
            if (temp.StartsWith(" "))
            {
                ServMissing.Add(temp);
            }
            else
            {
                tempArray = csvReader.CSVParser(temp);
                Boolean first = true;
                String key = "";
                String value = "";

                foreach (String x in tempArray)
                {
                    if (first)
                    {
                        key = x;
                        first = false;
                    }
                    else
                    {
                        value += x + ",";
                    }
                }
                myHashtable.Add(key, value);
            }
            count++;
        }

        Console.WriteLine("Import Count: " + count);
        return myHashtable;
    }

最佳答案

if (myHashtable.ContainsKey(key))
    duplicates.Add(key);
else
    myHashtable.Add(key, value);

关于C# 异常处理继续出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/134251/

相关文章:

mysql - 如何在导入 mySQL 之前修改 CSV 文件以允许数据中存在逗号

python - 填补 Pandas 数据框中的日期空白

c# - 将 WCF 服务从测试控制台应用程序移至 IIS

java - 线程 "main"java.lang.NumberFormatException : For input string: "" (I entered digits, 中出现异常,但它似乎读取了一个空字符串)

Python 定义 IFERROR 函数

javascript - Rhino 将 Java 类传递给 Javascript 函数

java - 使用 CSV 解析器根据多个约束验证每个归档

c# - 用于用户运行时报告设计的 OpenSource Report Designer?

c# - 如何排队数据库访问?

c# - Linq 结果将所有行数据连接到字符串