с использованием только функций, доступных в .net 2.0
Предполагая, что вы установили многоцелевые пакеты для Visual Studio, вы должны иметь возможность ориентироваться на конкретную инфраструктуру при создании проекта.,Вы также можете изменить целевой фреймворк через страницы свойств проекта.
![FrameWork Selection](https://i.stack.imgur.com/QISCn.png)
Если вам также необходимо указать поддерживаемую языковую версию, это можно установить с помощьюСвойства проекта Build Tab, нажав на кнопку «Дополнительно».В этом случае ISO-2 выбирается в соответствии с C # V2, выпущенным как часть VS2005 вместе с .Net 2.0.
![Language Version Selection](https://i.stack.imgur.com/WAjrT.png)
Если вынужна информация о мульти-таргетинге, см .:
При настроенной таким образом среде проекта вы сможете использовать только функции, доступные в .Net 2.0 и C # 2.0.Это включает в себя то, что вы увидите в обозревателе объектов.
Теперь рассмотрим проблему, отсортировав содержимое Dictionary<string, float>
по значению.
Простой способ - извлечь пары ключ-значение в класс, поддерживающий сортировку.В приведенном ниже примере для хранения значений используется List<KeyValuePair<string, float>>
.Метод сортировки списка передается делегату System.Comparison этому методу, который определяет логику сравнения.Логика сравнения предназначена для сортировки как по значению (по убыванию), так и по ключу (по возрастанию), если значения равны.
public void Test()
{
Dictionary<string, float> dict = new Dictionary<string, float>();
dict.Add("A1", 3);
dict.Add("A2", 30);
dict.Add("Z", 30);
dict.Add("A3", 30);
dict.Add("F", 5);
List<KeyValuePair<string, float>> sorted = new List<KeyValuePair<string, float>>(dict);
sorted.Sort(new Comparison<KeyValuePair<string, float>>(CompareKvp));
foreach(KeyValuePair<string, float> kvp in sorted)
{
Console.WriteLine(kvp.ToString());
}
}
private static Int32 CompareKvp(KeyValuePair<string, float> kvp1, KeyValuePair<string, float> kvp2)
{
int ret = - kvp1.Value.CompareTo(kvp2.Value); // negate for descending
if (ret == 0)
{
ret = kvp1.Key.CompareTo(kvp2.Key); // Ascend comp for Key
}
return ret;
}
В этом примере будут получены упорядоченные пары ключ-значение:
[A2, 30]
[A3, 30]
[Z, 30]
[F, 5]
[A1, 3]