This C# program demonstrates how to sort a list with a built-in comparison.
using System;
using System.Collections.Generic;
namespace XoaX {
public class CComparableChristianMartyr : IComparable<CComparableChristianMartyr> {
public CComparableChristianMartyr(string sName, int iYearOfMartyrdom) {
msName = sName;
miYearOfMartyrdom = iYearOfMartyrdom;
}
public string msName;
public int miYearOfMartyrdom;
public int CompareTo(CComparableChristianMartyr qOther) {
if (qOther == null) return 1;
else return msName.CompareTo(qOther.msName);
}
}
class Program {
static void Main(string[] args) {
List<CComparableChristianMartyr> qMartyrs = new List<CComparableChristianMartyr>();
qMartyrs.Add(new CComparableChristianMartyr("Saint Julian", 250));
qMartyrs.Add(new CComparableChristianMartyr("Saint Lorenzo Ruiz", 1637));
qMartyrs.Add(new CComparableChristianMartyr("Saint Apollonius", 305));
qMartyrs.Add(new CComparableChristianMartyr("Saint Justin Martyr", 165));
qMartyrs.Add(new CComparableChristianMartyr("Saint Laura", 864));
qMartyrs.Add(new CComparableChristianMartyr("Saint John Boste", 1594));
qMartyrs.Add(new CComparableChristianMartyr("Saint Flavius", 300));
Console.WriteLine("Unsorted:");
Console.WriteLine("---------");
foreach (CComparableChristianMartyr qMartyr in qMartyrs) {
Console.WriteLine(qMartyr.msName + " was martyred in " +
qMartyr.miYearOfMartyrdom + " AD");
}
Console.WriteLine("");
// Sort the list using the overridden function
qMartyrs.Sort();
Console.WriteLine("Sorted by name:");
Console.WriteLine("---------------");
foreach (CComparableChristianMartyr qMartyr in qMartyrs) {
Console.WriteLine(qMartyr.msName + " was martyred in " +
qMartyr.miYearOfMartyrdom + " AD");
}
Console.WriteLine("");
}
}
}
Unsorted: --------- Saint Julian was martyred in 250 AD Saint Lorenzo Ruiz was martyred in 1637 AD Saint Apollonius was martyred in 305 AD Saint Justin Martyr was martyred in 165 AD Saint Laura was martyred in 864 AD Saint John Boste was martyred in 1594 AD Saint Flavius was martyred in 300 AD Sorted by name: --------------- Saint Apollonius was martyred in 305 AD Saint Flavius was martyred in 300 AD Saint John Boste was martyred in 1594 AD Saint Julian was martyred in 250 AD Saint Justin Martyr was martyred in 165 AD Saint Laura was martyred in 864 AD Saint Lorenzo Ruiz was martyred in 1637 AD Press any key to continue . . .
© 20072024 XoaX.net LLC. All rights reserved.