SortedDictionary sortDict....
так не работает... sortDict.OrderBy(p => Path.GetExtension(p.Key))
У класса SortedDictionary<TKey,TValue> есть конструктор, который принимает IComparer<T> для сравнения ключей.
Таким образом, если мы напишем нужный нам компарер, мы можем определить порядок сортировки ключей в коллекции.
Ниже код компарера, который сначала сравнивает расширения файлов, потом, если расширения одинаковые, сравнивает имена файлов. Таким образом словарь будет сортировать ключи сначала по расширению файла, потом по имени файла
public class ExtensionComparer : IComparer<string>
{
public int Compare(string x, string y)
{
var ret = string.Compare(Path.GetExtension(x), Path.GetExtension(y));
if (ret != 0) return ret;
return string.Compare(x, y);
}
}
Как проверить:
var dict = new SortedDictionary<string, bool>(new ExtensionComparer());
dict.Add("file2.txt", false);
dict.Add("file1.txt", true);
dict.Add("file2.1xt", false);
dict.Add("file1.1xt", true);
foreach (var kv in dict)
Console.WriteLine($"{kv.Key} - {kv.Value}");
Вывод
file1.1xt - True
file2.1xt - False
file1.txt - True
file2.txt - False
Продвижение своими сайтами как стратегия роста и независимости