public int Compare(object x, object y) { ListViewItem listviewX = (ListViewItem)x; ListViewItem listviewY = (ListViewItem)y; if (listviewX.Checked && !listviewY.Checked) { return(-1); } else if (listviewX.Checked.Equals(listviewY.Checked)) { if (listviewX.ImageIndex < listviewY.ImageIndex) { return(-1); } else if (listviewX.ImageIndex == listviewY.ImageIndex) { return(ObjectCompare.Compare(listviewX.Text.Trim(), listviewY.Text.Trim())); } else { return(1); } } else { return(1); } }
public int Compare(object x, object y) { //int compareResult; int image1, image2; ListViewItem listviewX, listviewY; // Cast the objects to be compared to ListViewItem objects listviewX = (ListViewItem)x; image1 = listviewX.ImageIndex; listviewY = (ListViewItem)y; image2 = listviewY.ImageIndex; if (image1 < image2) { return(-1); } else if (image1 == image2) { return(ObjectCompare.Compare(listviewX.Text.Trim(), listviewY.Text.Trim())); } else { return(1); } }
public int Compare(object x, object y) { ListViewItem listviewX, listviewY; // Cast the objects to be compared to ListViewItem objects listviewX = (ListViewItem)x; listviewY = (ListViewItem)y; return(ObjectCompare.Compare(listviewX.Text, listviewY.Text)); }
public int Compare(object x, object y) { int image1, image2; ListViewItem listviewX, listviewY; listviewX = (ListViewItem)x; image1 = listviewX.ImageIndex; listviewY = (ListViewItem)y; image2 = listviewY.ImageIndex; if (image1 < image2) { return(-1); } else if (image1 == image2) { return(ObjectCompare.Compare(listviewX.Text.Trim(), listviewY.Text.Trim())); } else { return(1); } }
/// <summary> /// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison. /// </summary> /// <param name="x">First object to be compared</param> /// <param name="y">Second object to be compared</param> /// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns> public int Compare(object x, object y) { int compareResult; ListViewItem listviewX, listviewY; // Cast the objects to be compared to ListViewItem objects listviewX = (ListViewItem)x; listviewY = (ListViewItem)y; if (ColumnToSort == 0) { compareResult = FirstObjectCompare.Compare(x, y); } else { // Compare the two items compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text); } // Calculate correct return value based on object comparison if (OrderOfSort == SortOrder.Ascending) { // Ascending sort is selected, return normal result of compare operation return(compareResult); } else if (OrderOfSort == SortOrder.Descending) { // Descending sort is selected, return negative result of compare operation return(-compareResult); } else { // Return '0' to indicate they are equal return(0); } }
/// <summary> /// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison. /// </summary> /// <param name="x">First object to be compared</param> /// <param name="y">Second object to be compared</param> /// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns> public int Compare(object x, object y) { int compareResult; ListViewItem listviewX, listviewY; // Cast the objects to be compared to ListViewItem objects listviewX = (ListViewItem)x; listviewY = (ListViewItem)y; if (ColumnToSort == 0) { compareResult = FirstObjectCompare.Compare(x, y); } else if (ColumnToSort == 1) // IP { compareResult = -1; string sIp1 = listviewX.SubItems[ColumnToSort].Text; string sIp2 = listviewY.SubItems[ColumnToSort].Text; if (sIp1 == sIp2) { compareResult = 0; // Identical } else if (sIp1.Length > 0 && sIp2.Length > 0) { string[] sIp1p = sIp1.Split('.'); string[] sIp2p = sIp2.Split('.'); // Might be IPs if (sIp1p.Length == 4 && sIp2p.Length == 4) { if (Convert.ToInt32(sIp1p[0]) < Convert.ToInt32(sIp2p[0])) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[0]) > Convert.ToInt32(sIp2p[0])) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[1]) < Convert.ToInt32(sIp2p[1])) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[1]) > Convert.ToInt32(sIp2p[1])) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[2]) < Convert.ToInt32(sIp2p[2])) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[2]) > Convert.ToInt32(sIp2p[2])) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[3]) < Convert.ToInt32(sIp2p[3])) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[3]) > Convert.ToInt32(sIp2p[3])) { compareResult = 1; } } } } } } } else if (ColumnToSort == 2) // MAC { compareResult = -1; string sIp1 = listviewX.SubItems[ColumnToSort].Text; string sIp2 = listviewY.SubItems[ColumnToSort].Text; if (sIp1 == sIp2) { compareResult = 0; // Identical } else if (sIp1.Length > 0 && sIp2.Length > 0) { string[] sIp1p = sIp1.Split(':'); string[] sIp2p = sIp2.Split(':'); // Might be MAC Adresses if (sIp1p.Length == 6 && sIp2p.Length == 6) { if (Convert.ToInt32(sIp1p[0], 16) < Convert.ToInt32(sIp2p[0], 16)) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[0], 16) > Convert.ToInt32(sIp2p[0], 16)) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[1], 16) < Convert.ToInt32(sIp2p[1], 16)) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[1], 16) > Convert.ToInt32(sIp2p[1], 16)) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[2], 16) < Convert.ToInt32(sIp2p[2], 16)) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[2], 16) > Convert.ToInt32(sIp2p[2], 16)) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[3], 16) < Convert.ToInt32(sIp2p[3], 16)) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[3], 16) > Convert.ToInt32(sIp2p[3], 16)) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[4], 16) < Convert.ToInt32(sIp2p[4], 16)) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[4], 16) > Convert.ToInt32(sIp2p[4], 16)) { compareResult = 1; } else { if (Convert.ToInt32(sIp1p[5], 16) < Convert.ToInt32(sIp2p[5], 16)) { compareResult = -1; } else if (Convert.ToInt32(sIp1p[5], 16) > Convert.ToInt32(sIp2p[5], 16)) { compareResult = 1; } } } } } } } } } else { // Compare the two items compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text); } // Calculate correct return value based on object comparison if (OrderOfSort == SortOrder.Ascending) { // Ascending sort is selected, return normal result of compare operation return(compareResult); } else if (OrderOfSort == SortOrder.Descending) { // Descending sort is selected, return negative result of compare operation return(-compareResult); } else { // Return '0' to indicate they are equal return(0); } }
public int Compare(object x, object y) { int compareResult = 0; ListViewItem listviewX, listviewY; listviewX = (ListViewItem)x; listviewY = (ListViewItem)y; ListView listViewMain = listviewX.ListView; if (listViewMain.Sorting != SortOrder.Ascending && listViewMain.Sorting != SortOrder.Descending) { return(compareResult); } if (mySortModifier.Equals(SortModifiers.SortByText) || ColumnToSort > 0) { if (listviewX.SubItems.Count <= ColumnToSort && listviewY.SubItems.Count <= ColumnToSort) { compareResult = ObjectCompare.Compare(null, null); } else if (listviewX.SubItems.Count <= ColumnToSort && listviewY.SubItems.Count > ColumnToSort) { compareResult = ObjectCompare.Compare(null, listviewY.SubItems[ColumnToSort].Text.Trim()); } else if (listviewX.SubItems.Count > ColumnToSort && listviewY.SubItems.Count <= ColumnToSort) { compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text.Trim(), null); } else { compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text.Trim(), listviewY.SubItems[ColumnToSort].Text.Trim()); } } else { switch (mySortModifier) { case SortModifiers.SortByCheckbox: compareResult = FirstObjectCompare2.Compare(x, y); break; case SortModifiers.SortByImage: compareResult = FirstObjectCompare.Compare(x, y); break; default: compareResult = FirstObjectCompare.Compare(x, y); break; } } if (OrderOfSort == SortOrder.Ascending) { return(compareResult); } else if (OrderOfSort == SortOrder.Descending) { return(-compareResult); } else { return(0); } }
/// <summary> /// This method is inherited from the IComparer interface. It compares the two objects passed using a case insensitive comparison. /// </summary> /// <param name="x">First object to be compared</param> /// <param name="y">Second object to be compared</param> /// <returns>The result of the comparison. "0" if equal, negative if 'x' is less than 'y' and positive if 'x' is greater than 'y'</returns> public int Compare(object x, object y) { int compareResult = 0; ListViewItem listviewX, listviewY; // Cast the objects to be compared to ListViewItem objects listviewX = (ListViewItem)x; listviewY = (ListViewItem)y; ListView listViewMain = listviewX.ListView; // Calculate correct return value based on object comparison if (listViewMain.Sorting != SortOrder.Ascending && listViewMain.Sorting != SortOrder.Descending) { // Return '0' to indicate they are equal return(compareResult); } if (mySortModifier.Equals(SortModifiers.SortByText) || ColumnToSort > 0) { // Compare the two items if (listviewX.SubItems.Count <= ColumnToSort && listviewY.SubItems.Count <= ColumnToSort) { compareResult = ObjectCompare.Compare(null, null); } else if (listviewX.SubItems.Count <= ColumnToSort && listviewY.SubItems.Count > ColumnToSort) { compareResult = ObjectCompare.Compare(null, listviewY.SubItems[ColumnToSort].Text.Trim()); } else if (listviewX.SubItems.Count > ColumnToSort && listviewY.SubItems.Count <= ColumnToSort) { compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text.Trim(), null); } else { compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text.Trim(), listviewY.SubItems[ColumnToSort].Text.Trim()); } } else { switch (mySortModifier) { case SortModifiers.SortByCheckbox: compareResult = FirstObjectCompare2.Compare(x, y); break; case SortModifiers.SortByImage: compareResult = FirstObjectCompare.Compare(x, y); break; default: compareResult = FirstObjectCompare.Compare(x, y); break; } } // Calculate correct return value based on object comparison if (OrderOfSort == SortOrder.Ascending) { // Ascending sort is selected, return normal result of compare operation return(compareResult); } else if (OrderOfSort == SortOrder.Descending) { // Descending sort is selected, return negative result of compare operation return(-compareResult); } else { // Return '0' to indicate they are equal return(0); } }