Вид универсальный список

Я желаю отсортировать Универсальный Список в Возрастающем Хронологическом порядке. (Платформа v2)

Какие-либо предложения?

Спасибо

9
задан chrr 22 January 2010 в 11:05
поделиться

4 ответа

Это хороший учебник , он показывает, как это сделать.

14
ответ дан 4 December 2019 в 10:04
поделиться

Использование Список .sort () и просто убедитесь, что у вас есть соответствующий сравнительный.

2
ответ дан 4 December 2019 в 10:04
поделиться

Упал и WIM все это сказали:
Используйте делегаты:

new List<DateTime>().Sort(delegate(DateTime d1, DateTime d2) {
    return d1.CompareTo(d2);
});

или если у вас есть класс или что-то, что удерживает, что DateTime:

new List<Nhonho>().Sort(delegate(Nhonho n1, Nhonho n2) {
    return n1.date.CompareTo(n2.date);
});

, чтобы его уменьшить,

new List<Nhonho>().Sort(delegate(Nhonho n1, Nhonho n2) {
    return n2.date.CompareTo(n1.date);
});

удачи.

3
ответ дан 4 December 2019 в 10:04
поделиться

Эй, ребята! Для этого сценария я предложил бы что-то вполне похожее, но, на мой взгляд, лучший способ решить эту проблему.

Я бы реализовал новые классы, что их единственное Soutpouse - иметь определенную сортировку «стратегию». Например; Я бы создал «Productraine Comparer» и «ProductPriceComparer», эти классы должны реализовать интерфейс ICOMPARER, то я бы позвонил только сортировке метода, передавающую эти стратегии в качестве параметров. Вы можете проверить код, который я только что сделал, чтобы их понит;

public class ProductPriceComparer : IComparer<Product>
    {
        public int Compare(Product x, Product y)
        {
            if (x.Price > y.Price)
                return 1;

            if (x.Price < y.Price)
                return -1;

            return 0;
        }
    }

    public class ProductNameComparer : IComparer<Product>
    {
        public int Compare(Product x, Product y)
        {
            return x.Name.CompareTo(y.Name);
        }
    }

    public class Product
    {
        public Product(String name, Decimal price)
        {
            this.name = name;
            this.price = price;
        }

        private String name;
        public String Name
        {
            get { return name; }
            set { name = value; }
        }

        private Decimal price;
        public Decimal Price
        {
            get { return price; }
            set { price = value; }
        }

        public override string ToString()
        {
            return Name + " ($"+ Price.ToString() + ")";
        }
    }

    static void Main(string[] args)
    {
        List<Product> products = new List<Product>();
        products.Add(new Product("Product Z", 45.98m));
        products.Add(new Product("Product D", 12.80m));
        products.Add(new Product("Product A", 25.19m));
        products.Add(new Product("Product B", 65.00m));
        products.Add(new Product("Product P", 5.14m));

        Console.WriteLine("PRODUCTS SORTED BY PRICE");
        products.Sort(new ProductPriceComparer());
        foreach (Product p in products)
            Console.WriteLine(p.ToString());

        Console.WriteLine("\n--------------------------------\n");

        Console.WriteLine("PRODUCTS SORTED BY NAME");
        products.Sort(new ProductNameComparer());
        foreach (Product p in products)
            Console.WriteLine(p.ToString());
    }

то, что мы поддерживали, это;

продукты, отсортированные по цене Продукт P ($ 5,14) Продукт D ($ 12,80) Продукт A ($ 25,19) Продукт Z ($ 45,98) Продукт B ($ 65,00)


Продукты, отсортированные по имени Продукт A ($ 25,19) Продукт B ($ 65,00) Продукт D ($ 12,80) Продукт P ($ 5,14) Продукт Z ($ 45,98)

Я думаю, что это поможет !!! Увидимся!

2
ответ дан 4 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: