Почему бы не использовать TreeSet?
То же понятие упорядочивания как TreeMap, кроме он - Набор - который, по определению, является "Набором, который не содержит дублирующихся элементов".
От Вашего описания проблемы, кажется будто Вам нужен Набор, я не вижу, какие ключи и значения Вы отображаете вместе.
Этот класс реализует интерфейс Set, поддержанный экземпляром TreeMap. Этот класс гарантирует, что отсортированный набор будет в возрастающем порядке элемента, отсортированном согласно естественному порядку элементов (см. Сопоставимый), или компаратором, обеспеченным во время создания набора, в зависимости от которого используется конструктор.
Лучший способ решить проблему с Image.FromFile
, при котором дескрипторы файлов остаются открытыми, - это использовать вместо него Image.FromStream
.
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
using (Image original = Image.FromStream(fs))
{
...
Использование явного Dispose (), оператора using () или установка значения null не решает проблему, пока не произойдет сборка мусора. Как правило, принудительная сборка мусора - плохая идея.
Или попробуйте:
Using(Bitmap resultTiff = (Bitmap) Image.FromFile(strImageFile))
{
ep.Param[0] = new EncoderParameter(enc, (long) EncoderValue.Flush);
resultTiff.SaveAdd(ep);
}