Vb.net 分类词典行为
我在应用程序中使用了一个SortedDictonaryOf字符串,字符串,我体验到一种奇怪的排序行为。考虑下面的代码示例:Vb.net 分类词典行为,vb.net,sorting,sorteddictionary,Vb.net,Sorting,Sorteddictionary,我在应用程序中使用了一个SortedDictonaryOf字符串,字符串,我体验到一种奇怪的排序行为。考虑下面的代码示例: Dim Dic As New SortedDictionary(Of String, String) Dic.Add("'A", "") Dic.Add("A", "") Dic.Add("'B", "") Dic.Add("B", "") Dic.Add("'C", "") Dic.Add("C", "") 我希望键被排序为'A',B',C,A,B,C,这是通过
Dim Dic As New SortedDictionary(Of String, String)
Dic.Add("'A", "")
Dic.Add("A", "")
Dic.Add("'B", "")
Dic.Add("B", "")
Dic.Add("'C", "")
Dic.Add("C", "")
我希望键被排序为'A',B',C,A,B,C,这是通过<操作符手动比较键时得到的结果。然而,遍历这些键会返回A,'A,B,'B,C,'C
如何将SortedDictionary行为更改为对以“first”开头的单词进行排序
谢谢,,
CFP根据默认比较器,a中的每个键都必须是唯一的
SortedDictionaryTKey,TValue需要比较器实现来执行键比较。此构造函数使用默认的本地区域性相关泛型相等比较器ComparerT.default。如果类型TKey实现System.IComparableT泛型接口,则默认比较器使用该实现。或者,您可以通过使用接受比较器参数的构造函数来指定IComparerT通用接口的实现
Dim Dic As New SortedDictionary(Of String, String)(StringComparer.Ordinal)
Dic.Add("'A", "")
Dic.Add("A", "")
Dic.Add("'B", "")
Dic.Add("B", "")
Dic.Add("'C", "")
Dic.Add("C", "")
For Each Item As KeyValuePair(Of String, String) In Dic
Console.WriteLine(Item.Key & " > " & Item.Value)
Next
输出:
'A >
'B >
'C >
A >
B >
C >
根据默认比较器,中的每个键都必须是唯一的
SortedDictionaryTKey,TValue需要比较器实现来执行键比较。此构造函数使用默认的本地区域性相关泛型相等比较器ComparerT.default。如果类型TKey实现System.IComparableT泛型接口,则默认比较器使用该实现。或者,您可以通过使用接受比较器参数的构造函数来指定IComparerT通用接口的实现
Dim Dic As New SortedDictionary(Of String, String)(StringComparer.Ordinal)
Dic.Add("'A", "")
Dic.Add("A", "")
Dic.Add("'B", "")
Dic.Add("B", "")
Dic.Add("'C", "")
Dic.Add("C", "")
For Each Item As KeyValuePair(Of String, String) In Dic
Console.WriteLine(Item.Key & " > " & Item.Value)
Next
输出:
'A >
'B >
'C >
A >
B >
C >
您需要指定不同的比较器:
Dim Dic As New SortedDictionary(Of String, String)(StringComparer.Ordinal)
您需要指定不同的比较器:
Dim Dic As New SortedDictionary(Of String, String)(StringComparer.Ordinal)
在我的电话簿中,约翰·奥利里在奥勒·特拉普斯和丹尼斯·奥立克之间排序。您必须使用非区域性相关排序:
Dim Dic As New SortedDictionary(Of String, String)(StringComparer.Ordinal)
在我的电话簿中,约翰·奥利里在奥勒·特拉普斯和丹尼斯·奥立克之间排序。您必须使用非区域性相关排序:
Dim Dic As New SortedDictionary(Of String, String)(StringComparer.Ordinal)
事实上,我没有想到这一点。谢谢!事实上,我没有想到这一点。谢谢!