diff --git a/v2rayN/v2rayN/Base/ListViewSort.cs b/v2rayN/v2rayN/Base/ListViewSort.cs index 362c206b..4ea29705 100644 --- a/v2rayN/v2rayN/Base/ListViewSort.cs +++ b/v2rayN/v2rayN/Base/ListViewSort.cs @@ -17,42 +17,25 @@ namespace v2rayN.Base ListViewItem l2 = (ListViewItem)y; int doIntSort = Sorting; - if (doIntSort > 0) // Tag will be number + if (doIntSort > 0 // Tag will be number + && (ulong.TryParse(l1.SubItems[Column].Tag?.ToString(), out ulong fl1) + && ulong.TryParse(l2.SubItems[Column].Tag?.ToString(), out ulong fl2)) // fallback to text + ) { - var data1 = l1.SubItems[Column].Tag; - var data2 = l2.SubItems[Column].Tag; - if(data1 == null & data2 == null) - { - data1 = l1.SubItems[Column].Text; - data2 = l2.SubItems[Column].Text; - System.Diagnostics.Debug.WriteLine("Tag missing?"); - } - - ulong.TryParse(data1.ToString(), out ulong fl1); - ulong.TryParse(data2.ToString(), out ulong fl2); - if (doIntSort == 1) - { return fl1.CompareTo(fl2); - } else - { return fl2.CompareTo(fl1); - } } else { string str1 = l1.SubItems[Column].Text; string str2 = l2.SubItems[Column].Text; - if (doIntSort == -1) - { + if (doIntSort == -1 || doIntSort == 1) return str1.CompareTo(str2); - } else - { return str2.CompareTo(str1); - } } } }