Здравствуйте, Воронин Иван, Вы писали:
ВИ>Список заполнен. Беру из него коллекцию ключей, прохожу по ней и смотрю значения, соответствующие ключу.
ВИ>ВИ> ICollection<TargetKey> tKey = NewTarget.Keys;
ВИ> foreach (TargetKey tT in tKey)
ВИ> {
ВИ> MessageBox.Show(NewTarget[tT].Code + " | " + NewTarget[tT].Name + " | " + NewTarget[tT].Level);
ВИ> }
ВИ>
Если это самоцель, то проще не индексироваться по ключу:
foreach (var pair in NewTarget)
{
Console.WriteLine(pair.Value.Code + " | " + pair.Value.Name + " | " + pair.Value.Level);
}
т.к. пары (в SortedList) уже будут упорядочены по ключу.
ВИ>Вылетает исключение: System.Collections.Generic.KeyNotFoundException: "Данный ключ отсутствует в словаре."
ВИ>Как в словаре может отсутствовать ключ, взятый из самого этого ключа?
ВИ>Единственное, что могу предположить — некорректная перегрузка операторов сравнения и/или компаратора, но не понимаю, где именно.
Чтобы это понять, надо узнать значение ключа (tT) на котором это происходит.