У меня возникла проблема с упорядочиванием списков в C#. Решения, которые я придумываю, громоздки и кажутся мне чем-то вроде взлома. Я ищу элегантное решение описанной ниже проблемы.
Я хочу, чтобы порядок оставался в классе, чтобы избежать использования .Sort() или .OrderBy() в других частях кода.
В сообщении 9-летней давности предполагается, что такого класса/решения не существует. Но я не могу избавиться от ощущения, что где-то есть что-то похожее на OrderedList, которое не является IDictionary.
using System;
using System.Collections.Generic;
namespace ConsoleApp5
{
class Program
{
static void Main(string[] args)
{
var obj = new Class1();
obj.Test();
}
}
public class Class1
{
public void Test()
{
var myList = new List();
myList.Add(new MyObject { Id = 1, Name = "ZZZ" });
myList.Add(new MyObject { Id = 2, Name = "NNN" });
myList.Add(new MyObject { Id = 3, Name = "PPP" });
myList.Add(new MyObject { Id = 4, Name = "AAA" });
foreach (var obj in myList)
{
Console.WriteLine($"{obj.Name} -> {obj.Id}");
}
}
public class MyObject
{
public int Id { get; set; }
public string Name { get; set; }
}
}
}
И список распечатывается по порядку:
ZZZ -> 1
NNN -> 2
PPP -> 3
AAA -> 4
Может ли кто-нибудь предложить подходящий класс для упорядоченного списка, который будет обеспечивать:
AAA -> 4
NNN -> 2
PPP -> 3
ZZZ -> 1
Подробнее здесь: https://stackoverflow.com/questions/579 ... in-c-sharp