【问题标题】:Sorting a string array from any character position从任何字符位置对字符串数组进行排序
【发布时间】:2016-01-31 15:57:11
【问题描述】:

使用 vb 2008 我需要对字符串数组进行排序:(例如:)

dim list1() as String={"CONE0Z08TTTBALL","BARE0U04TTTBALL",  
             "APTN0S01TTTBALL","SPTN0K02TTTBALL"}

从第 5 个字符(不是第一个)开始排序:

  1. SPTN0K02TTTBALL
  2. VPTN0S01TTTBALL
  3. BARE0U04TTTBALL
  4. CONE0Z08TTTBALL

有什么办法使用Array类排序?

【问题讨论】:

  • SPTN0K02TTTBALL 不在数组中 - 这是拼写错误吗?
  • 已修复!复制粘贴错误!
  • 但是现在,VPTN0S01TTTBALL 不在列表中...不过我明白了

标签: arrays vb.net


【解决方案1】:

您可以使用 linq 来执行此操作。我将APTN0K02TTTBALL 更改为SPTN0K02TTTBALL,因为这看起来像是一个错字。

Dim list1() As String = {"CONE0Z08TTTBALL", "BARE0U04TTTBALL",
     "APTN0S01TTTBALL", "SPTN0K02TTTBALL"}
Dim result = list1.OrderBy(Function(q) q.Substring(5)).ToArray

For Each s As String In result
    Console.WriteLine(s)
Next

输出:

SPTN0K02TTTBALL
APTN0S01TTTBALL
BARE0U04TTTBALL
CONE0Z08TTTBALL

注意:如果第 5 个字符表示从 1 开始,请更改子字符串参数(从 0 开始)。此外,这是一个 alpha 排序,所以如果你想按数字的值排序,你也应该转换为整数。不确定你的意思。

ryanyuyu 请给你写这个DotNetFiddle

【讨论】:

  • 所以......当你在处理这个答案时,我正在创建一个演示。由于我的代码最终与您的代码几乎相同,因此您可以根据需要使用它。 Demo
  • 很好,我添加了它。我曾经写过很多这样的东西,但是从观看次数来看,VB 人似乎从不看它们。奇怪的。 @ryanyuyu
  • 感谢您的帮助。数字被视为字符,所以我认为它会起作用。
猜你喜欢
  • 1970-01-01
  • 2021-02-04
  • 2016-07-18
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多