首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带StringComparer和德语元音的.net SortedList

带StringComparer和德语元音的.net SortedList
EN

Stack Overflow用户
提问于 2013-11-05 20:19:41
回答 1查看 237关注 0票数 3

我有一个带有街名的SortedList

代码语言:javascript
复制
Dim orderedListStreet As New Generic.SortedList(Of String, String)(StringComparer.CurrentCulture)

例如,列表中已经包含了"Hauptstrasse

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

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

EN

回答 1

Stack Overflow用户

发布于 2013-11-05 20:28:52

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

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

如果您希望进行区分区域性的排序,但又希望将区域性认为相同的两个字符串视为不同的字符串,则一种解决方案是实现您自己的比较器,例如:

代码语言:javascript
复制
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进行排序,但是使用序号排序来打破关系(如果它不能满足您的需要,您可以将其替换为其他值)。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19788860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档