Возможно, вы захотите что-то вроде этого:
IEnumerable<string> sortedNames =
PersonsList
.Select(id => PersonsDictionary[id].FullName) // Select the name for each entry
.OrderBy(n => n, StringComparer.OrdinalIgnoreCase); // Order the names (case insenstive)
foreach(string name in sortedNames) // Materialize the ordered names
{
Console.Write(name); // print
}
Возможно, вам понадобится добавить using System.Linq;
вверху вашего файла .cs, чтобы это работало, поскольку оно использует методы расширения LINQ:
Обратите внимание, что, как и ваш исходный код, это вызовет исключение KeyNotFoundException, если PersonsList
содержит ключ, которого нет в PersonsDictionary
.
Попробуйте онлайн