我正在try 比较以下两个角色L和ł,并让c#返回True

也就是说,我有单词przesyłka,我想将其与przesylka进行字符串比较

我try 过以下几种方法,但都返回错误

public static void Main()
{
    Console.WriteLine("l".Equals("ł", StringComparison.InvariantCulture));
    Console.WriteLine("l".Equals("ł", StringComparison.Ordinal));
    Console.WriteLine("l".Equals("ł", StringComparison.OrdinalIgnoreCase));
    Console.WriteLine("l".Equals("ł", StringComparison.InvariantCultureIgnoreCase));
    Console.WriteLine("l".Equals(RemoveDiacritics("ł"), StringComparison.InvariantCulture));
}

//https://stackoverflow.com/a/368850/2987066
static string RemoveDiacritics(string text)
{
  return string.Concat( 
      text.Normalize(NormalizationForm.FormD)
      .Where(ch => CharUnicodeInfo.GetUnicodeCategory(ch)!=
                                    UnicodeCategory.NonSpacingMark)
    ).Normalize(NormalizationForm.FormC);
}

如你所见,我也try 了一个从this stackoverflow answer开始的变通方法,但也返回了FALSE.

有没有一种方法可以比较c#中的这两个字符,返回TRUE?

推荐答案

try :

string.Compare("l", "ł", CultureInfo.InvariantCulture,
               CompareOptions.IgnoreNonSpace) == 0;

IgnoreNonSpace:指示字符串比较必须忽略非空格组合字符,如变音符号.

Csharp相关问答推荐

在C# 11之前, struct 中的每个字段都必须显式分配?不能繁殖

如何使用Unity和MRTK3将手网添加到Hololens 2应用程序中

不仅仅是一个简单的自定义按钮

Blazor. NET 8—阶段启动配置文件不启动网站VS2022

ITypeLib2.GetLibStatistics()在C#中总是抛出AccessViolationException

当通过Google的Gmail Api发送邮件时,签名会产生dkim = neutral(正文散列未验证)'

为什么SignalR在每个Blazor服务器应用程序启动时最多启动8个服务器?

如何将不同类型的扩展参数的javascript函数转换成C#风格?

未在数据流块之间传播完成

使用带有参数和曲面的注入失败(&Q;)

无法使用[FromForm]发送带有图像和JSON的多部分请求

使用switch 类型模式时出现奇怪的编译器行为

如何使用类似于[SELECT*FROM&Q;&Q;WHERE&Q;]SQL查询的System.Data.Entity创建查询?

Visual Studio如何使用当前的框架?

C#;AvaloniaUI;MVVM;当另一个窗口上的按钮被单击时,如何更新视图图像源?

实体框架允许您具有筛选的属性吗?

如何处理ASP.NET Core中包含两个构造函数的控制器?

身份验证中间件如何处理多个方案

CsvHelper在第二次迭代时抛出System.ObjectDisposedException

如何获取我在SQL中输入的值