微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 添加法语字符时抛出异常的SortedList

我在排序列表中添加了一些独特的法语单词,但它似乎没有区分某些单词,如“bœuf”&伯夫”.

private static void TestSortedList()
{

    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-fr");
    SortedList sortedList = new SortedList(new Comparer(CultureInfo.CurrentCulture));

    try
    {
        sortedList.Add("bœuf","Value1");
        sortedList.Add("boeuf","Value1");
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
}

因此,上面的代码抛出异常“System.ArgumentException:Item已被添加.”
请帮忙!

解决方法

SortedList sortedList = new SortedList(StringComparer.Ordinal);

    try
    {
        sortedList.Add("bœuf","Value1");
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }

作品.为了解释,Ordinal和OrdinalIgnoreCase比较器比较字符字节,它们对于不同的字符是不同的.
也见Difference between InvariantCulture and Ordinal string comparison.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐