我正在尝试按字母顺序对项目进行排序,并将它们排序放入新的文本框中。除了尝试对引号进行异常(exception)处理(因为它们出现在字母之前)之外,我已经把所有内容都记录下来了。到目前为止我已经
Dimholder as List(Of Strings) = New List(Of String)'保存我的值
Dim input as List(Of RichTextBox) = New List(Of RichTextBox)'其中输入文本
For i As Integer = 0 to input.Count - 1
holder.Add(input.ElementAt(i))
Next
holder.Sort()
For i As Integer = 0 to holder.Count - 1
txtResult.Text = txtResult.Text + vbCrLf + holder(i)
Next
如何忽略可能输入的引号?我还需要将信息输出到已排序的文本框中,但将引号放在已排序的字符串中。
最佳答案
只需实现您自己的 comparer 并使用 List.Sort() 采用自定义比较器的方法重载。
一个简短的例子:
Public NotInheritable Class MyComparer : Implements IComparer(Of String)
Public Function Compare(ByVal a As String, ByVal b As String) As Integer _
Implements IComparer(Of String).Compare
a = a.Trim({"'"c, ControlChars.Quote})
b = b.Trim({"'"c, ControlChars.Quote})
Return New CaseInsensitiveComparer().Compare(a, b)
End Function
End Class
用法:
Dim list As New List(Of String) From {"'b'", "''''a'", """d""", "c"}
list.Sort(New MyComparer)
关于.net - 如何在 VB.net 中删除 .Sort 之前的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36137843/