예제 #1
0
        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;
        }
예제 #2
0
                // 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));
                }
예제 #3
0
                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));
                }
예제 #4
0
public class SortWrapper