簡體   English   中英

.net字符串與排序規則的比較

[英].net string comparison with collation

我有2個不同的字符串( XXÈXXE )。 有什么方法可以使用歸類比較它們(在這種情況下,它將是UTF8 general CI我需要它們相等)? 我見過一些涉及MSSQL或SQLLite的示例-但這會給我的項目增加不必要的依賴。 所以,我的問題是-有什么方法可以在純.net(尤其是C#)中做到這一點?

更新:

讓我們以任何不錯的SQL引擎為例。 您可以創建表格,也可以選擇表格的排序規則。 在我們的情況下, XXÈXXE將存儲在表中,它們將具有不同的二進制表示形式(取決於編碼),但是當您搜索XXE ,它也會與XXÈ匹配。

我的情況非常相似。 我有一個帶有一些字符串的文本文件(UTF8)。 我想在屏幕上顯示值(排序-排序規則再次出現,相對重要),我想讓用戶搜索值。 用於搜索的排序規則將是一個選項。

您可以使用String.Normalize和一點LINQ功能:

string initial = "XXÈ";
string normal = initial.Normalize(NormalizationForm.FormD);

var withoutDiacritics = normal.Where(
    c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark);
string final = new string(withoutDiacritics.ToArray());
bool equals = "XXE".Equals(final); // true

參考: http : //www.blackwasp.co.uk/RemoveDiacritics.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM