У меня есть Dictionary<string, int>
, и я читаю некоторые строки из списка ... Я хочу добавить их в словарь, но если строка уже есть в словаре, я хочу, чтобы ее значение увеличилось на 1.
Код, который я пробовал, приведен ниже, но есть некоторые строки, которые увеличиваются с каждым вводом. Что-то не так?
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach (String recordline in tags)
{
String recordstag = recordline.Split('\t')[1];
String tagToDic = recordstag.Substring(0, (recordstag.Length-1) );
if (dictionary.ContainsKey(tagToDic) == false)
{
dictionary.Add(tagToDic, 1);
}
else
{
try
{
dictionary[tagToDic] = dictionary[tagToDic] + 1;
}
catch (KeyNotFoundException ex)
{
System.Console.WriteLine("X" + tagToDic + "X");
dictionary.Add(tagToDic, 1);
}
}
}
РЕДАКТИРОВАТЬ: Чтобы ответить на ваши комментарии ... Я удаляю последний символ строки, потому что это всегда пробел ...
Мой вклад как:
10000301 business 0 0,000
10000301 management & auxiliary services 0 0,000
10000316 demographie 0 0,000
10000316 histoire de france 0 0,000
10000347 economics 0 0,000
10000347 philosophy 1 0,500
и мне нужна только строка типа "бизнес" или "управление и вспомогательные услуги" и т. Д.