如何对arraylist进行排序?如果是数字或字母?

时间:2017-01-02 08:45:08

标签: asp.net vb.net

当我使用

  

arraylist.sort()

方法按顺序显示按字母顺序排列的字符串,但不按顺序显示数字值。

例如

我有像

这样的arraylist
1
22
21
34
27
68
100

我正在使用vb.net对这个数组列表进行排序,然后显示输出

1 
100 
22 
21 
27 
34 
68

这意味着排序已完成,但是他们在字符串的第一个字符上对数组列表进行排序,但我需要按顺序排序

1
21
22
27
34
68
100 

并且当我添加字母表时,它也起作用。

3 个答案:

答案 0 :(得分:2)

如果您不能使用Integer作为数字字符串(然后按预期排序),您可以使用Int32.Parse转换字符串并使用Sort-overload IComparer

arraylist.Sort(Comparer(Of String).Create(Function(s1,s2) Int32.Parse(s1).CompareTo(Int32.Parse(s2))))

当然,只有当所有项目都是可以转换为Integer的字符串时才有效,这就引发了一个问题,即您未使用List(Of String) / List(Of Int32)第一名。

答案 1 :(得分:1)

Caused by: java.lang.IllegalStateException: The 'filter' and 'locker' options must be present on the provided external 'scanner': org.springframework.integration.file.WatchServiceDirectoryScanner@2f6e5d3e
                at org.springframework.util.Assert.state(Assert.java:392) ~[spring-core-4.2.2.RELEASE.jar:4.2.2.RELEASE]
                at org.springframework.integration.file.FileReadingMessageSource.onInit(FileReadingMessageSource.java:256) ~[spring-integration-file-4.2.8.RELEASE.jar:na]
                at org.springframework.integration.context.IntegrationObjectSupport.afterPropertiesSet(IntegrationObjectSupport.java:155) ~[spring-integration-core-4.2.8.RELEASE.jar:na]
                at org.springframework.integration.file.config.FileReadingMessageSourceFactoryBean.initSource(FileReadingMessageSourceFactoryBean.java:177) ~[spring-integration-file-4.2.8.RELEASE.jar:na]
                at org.springframework.integration.file.config.FileReadingMessageSourceFactoryBean.getObject(FileReadingMessageSourceFactoryBean.java:111) ~[spring-integration-file-4.2.8.RELEASE.jar:na]
                at org.springframework.integration.file.config.FileReadingMessageSourceFactoryBean.getObject(FileReadingMessageSourceFactoryBean.java:40) ~[spring-integration-file-4.2.8.RELEASE.jar:na]
                at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168) ~[spring-beans-4.2.2.RELEASE.jar:4.2.2.RELEASE]
                ... 65 common frames omitted 

Dim list As New ArrayList '- items  as string 
list.Add("1")
list.Add("100")
list.Add("2")

是不同的。所以你应该相应地向你的arraylist添加项目

答案 2 :(得分:0)

您的arrayList可能包含字符串而不是数字。将其更改为数字,它将根据整数类型进行排序。