Вывод и сортировка коллекции с объектами - 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д