Вывод и сортировка коллекции с объектами - 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();
}
}