use*_*225 3 .net currentculture sortedlist
我有一个带街道名字的SortedList
Dim orderedListStreet As New Generic.SortedList(Of String, String)(StringComparer.CurrentCulture)
Run Code Online (Sandbox Code Playgroud)
让我们举个例子,列表已经包含" Hauptstrasse"
如果我添加" Hauptstraße",它会抛出异常 - >Key does already exist
有谁知道如何添加" Hauptstrasse"和" Hauptstraße"?
您可以使用认为它们不同的比较器.在德国,我希望Hauptstrasse和Hauptstraße成为同一条街,所以德国文化认为它们是平等的是合乎逻辑的.
哪一个使用将取决于您的需求 - 最快将是StringComparer.Ordinal或StringComparer.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;
}
Run Code Online (Sandbox Code Playgroud)
这基于CurrentCulture进行排序,但是使用序数排序来断开关系(如果它不符合您的需要,您可以用其他东西替换它).
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |