Вывод и сортировка коллекции с объектами - C#

Узнай цену своей работы

Формулировка задачи:

Подскажите как можно вывести элементы из ArrayList, а затем отсортировать их. В плюсах делал для List так:
 
#include list;
...
public bool sravn(my *ob,my *ob1)
   {
       return ob->m < ob1->m;
   }
l.sort(sravn);
Как в шарпе можно? Спасибо.
using System;
using System.Collections;
 
using System;
 
class my
{    
    public int m;
 
   public my(int _m)
    {
        m = _m;
    }
  public bool sravn(my ob,my ob1)
   {
       return ob.m < ob1.m;
   }
}
class programm
{
  
    static void Main()
    {
 
        my[] ob = new my[2];
        ob[0] = new my(2);
        ob[1]=new my(4);
        ArrayList ar = new ArrayList();
        ar.Add(ob[0]);
        ar.Add(ob[1])
        for (int i = 0; i < ar.Count; i++)
        {
            Console.WriteLine(i + " ");
        }
 
            Console.ReadKey();
    }
}

Решение задачи: «Вывод и сортировка коллекции с объектами»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
class test<T> : IComparer<T> where T : my
{
    public int Compare(T x, T y)
    {
        return x.m.CompareTo(y.m);
    }
 
    public int Compare_str(T x, T y)
    {
        return x.mm.CompareTo(y.mm);
    }
}
abstract class my 
{
 
    public int m; public string mm;
 
   public void set()
   {
       Console.WriteLine(m + " " + mm);
   }
 
 
   public abstract void draw();
    
}
 
 
class dva : my
{
    public dva(int _m,string _mm)
    {
        m=_m;
        mm=_mm;
    }
 
public override void draw()
{
    set();
    Console.WriteLine("метод класса dva");
    Console.WriteLine("---------------------------");
}
 }
 
class tri : my
{
    public tri(int _m, string _mm)
    {
        m = _m;
        mm = _mm;
    }
 
    public override void draw()
    {
        set();
        Console.WriteLine("метод класса tri");
        Console.WriteLine("---------------------------");
    }
}
 
 
class programm
{
 
    static void Main()
    {
 
        test<my> t = new test<my>();
        my[]ob=new my[2];
        ob[0] = new dva(8, "qwedsffds");
        ob[1] = new tri(4, "ertert");
        
        List<my> ar = new List<my>();
        ar.Add(ob[0]);
        ar.Add(ob[1]);
 
        foreach (my m in ar)
        {
            m.draw();
        }
        Console.WriteLine("  ");
 
       Console.WriteLine("Сортировк по int");
        ar.Sort(t.Compare);
 
        foreach (my m in ar)
        {
            m.draw();
        }
 
        Console.WriteLine("Сортировк по string");
        ar.Sort(t.Compare_str);
        foreach (my m in ar)
        {
            m.draw();
        }
   
            Console.ReadKey();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы