public int Compare(SummedItem item1, SummedItem item2) { if (!item1.BorX.Equals(item2.BorX)) { return(item1.BorX.CompareTo(item2.BorX)); } else if (!item1.ProductName.Equals(item2.ProductName)) { return(item1.ProductName.CompareTo(item2.ProductName)); } else { // item1 type: m1 * n1; item2 type: m2 * n2 StringParserService.ParseType(item1.Type, out int m1, out int n1); StringParserService.ParseType(item2.Type, out int m2, out int n2); return((m1 != m2) ? (m2 - m1) : (n2 - n1)); } }