テキストファイル(CSV形式)を1行ずつ読み取り、データをHashTableに配置する基本的なC#コンソールアプリケーションがあります。行の最初のCSV項目はキー(id num)であり、行の残りの部分は値です。ただし、インポートファイルに、あるべきではない重複キーがいくつかあることがわかりました。ファイルをインポートしようとすると、HashTableに重複するキーを含めることができないため、アプリケーションでエラーが発生します。ただし、プログラムでこのエラーを処理できるようにしたいと思います。重複するキーに遭遇した場合、そのキーを配列リストに入れ、残りのデータをハッシュテーブルにインポートし続けたいと思います。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;
}