public MainForm() { InitializeComponent(); var assembly = Assembly.GetAssembly(typeof(ISort <int>)); var types = AssemblyHelper.GetTypes(assembly, $"{nameof(SortAlgorithms)}.{nameof(Core)}.{nameof(Core.Sorts)}"); foreach (Type type in types) { var typeInterfaces = type.GetInterfaces(); foreach (var typeInterface in typeInterfaces) { if (typeInterface.Name.Equals(typeof(ISort <int>).Name)) { cbSortType.Items.Add(SortWrapper.Create(type)); break; } } } cbSortType.SelectedIndex = 0; nRandomFrom.Enabled = false; nRandomTo.Enabled = false; cbArrayCreationType.Items.AddRange(Enum.GetNames(typeof(ArrayCreationType))); cbArrayCreationType.SelectedIndex = 0; cbArrayCreationType.SelectedIndexChanged += cbArrayCreationType_SelectedIndexChanged; pnlSorts.AutoScroll = true; }
// Implemnentation of the IComparer:Compare // method for comparing two objects. public int Compare(object x, object y) { SortWrapper xItem = (SortWrapper)x; SortWrapper yItem = (SortWrapper)y; string xText = xItem.sortItem.SubItems[xItem.sortColumn].Text; string yText = yItem.sortItem.SubItems[yItem.sortColumn].Text; return(xText.CompareTo(yText) * (this.ascending ? 1 : -1)); }
public int Compare(object x, object y) { if ((x == null) | (y == null)) { return(0); } SortWrapper xItem = (SortWrapper)x; SortWrapper yItem = (SortWrapper)y; string xText = xItem.sortItem.SubItems[xItem.sortColumn].Text; string yText = yItem.sortItem.SubItems[yItem.sortColumn].Text; return(ComparePath(xText, yText) * (this.@ascending ? 1 : -1)); }
public class SortWrapper