gpt4 book ai didi

带有 StringComparer 和德语变音符号的 .net SortedList

转载 作者:行者123 更新时间:2023-12-01 11:41:44 26 4
gpt4 key购买 nike

我有一个带有街道名称的 SortedList

Dim orderedListStreet As New Generic.SortedList(Of String, String)(StringComparer.CurrentCulture)

例如,列表中已经包含“Hauptstrasse

如果我添加“Hauptstraße”,它会抛出异常 -> Key does already exist

有人知道如何添加“Hauptstrasse”和“Hauptstraße”吗?

最佳答案

您可以使用认为它们不同的比较器。在德国,我希望 Hauptstrasse 和 Hauptstraße 是同一条街,因此德国文化将它们视为平等是合乎逻辑的。

使用哪一个取决于您的需要 - 最快的是 StringComparer.OrdinalStringComparer.OrdinalIgnoreCase

如果您想要区分文化的排序,但又想将您的文化认为相同的两个不同的字符串视为相同的,一种解决方案是实现您自己的比较器,例如:

int MyComparer(string x, string y)
{
var result = StringComparer.CurrentCulture.Compare(x,y);
if (result == 0) result = StringComparer.Ordinal.Compare(x,y);
return result;
}

这基于 CurrentCulture 排序,但使用序数排序打破了联系(如果它不能满足您的需要,您可以用其他东西替换它)。

关于带有 StringComparer 和德语变音符号的 .net SortedList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19788860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com