【问题标题】:sort list(of string()) using a variable index into string() as key - vb.net排序列表(字符串())使用变量索引到字符串()作为键 - vb.net
【发布时间】:2012-05-30 16:37:57
【问题描述】:

我有一个List(of String())。我编写了一个自定义比较器 (implements IComparer(of string)) 来进行字母数字排序。

有没有办法使用给定的索引对列表进行排序,以确定String() 中的哪个位置进行排序?换句话说,一次我可能会按Index = 0 排序,另一次可能会按Index = 3 排序。列表中所有String() 的长度相同。

作为参考,这个问题类似于 Sort List<String[]>,除了我使用的是 VB.net 并且这个问题是硬连线到 Index=0


从 OP 的 cmets 编辑:

我从简单的非自定义比较器开始,但出现错误:表达式不产生值。不知道我做错了什么。 这是代码:

Public Shared Function SortListOfStringArray(ByVal ListOfStringArray As List(Of String()), ByVal SortByIndex As Integer) As List(Of String())
    Return ListOfStringArray.Sort(Function(x, y) x(SortByIndex).CompareTo(y(SortByIndex)))
End Function 

【问题讨论】:

    标签: vb.net sorting


    【解决方案1】:

    要对数组中特定索引上的字符串数组列表进行排序,请使用:

    Dim index As Integer = 1
    list.Sort(Function(x, y) x(index).CompareTo(y(index)))
    

    使用自定义比较器:

    Dim index As Integer = 1
    list.Sort(Function(x, y) comparer.Compare(x(index), y(index)))
    

    【讨论】:

    • 我从简单的非自定义比较器开始,但出现错误:表达式不产生值。不知道我做错了什么。这是代码:公共共享函数 SortListOfStringArray(ByVal ListOfStringArray As List(Of String()), ByVal SortByIndex As Integer) As List(Of String()) Return ListOfStringArray.Sort(Function(x, y) x(SortByIndex)。 CompareTo(y(SortByIndex))) 结束函数
    • 抱歉给我带来了麻烦。我不知道如何获取代码块,因此代码看起来很干净。我对编程比较陌生,第一次在这个网站上发帖。
    • @tullynyguy:Sort 方法不返回任何内容。首先对列表进行排序,然后将其返回。如果要保留原始列表并返回新列表,则必须在排序之前复制列表。
    猜你喜欢
    • 2014-07-02
    • 2019-04-29
    • 1970-01-01
    • 2015-03-08
    • 2021-04-21
    • 2017-07-22
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多