c# - 有没有办法在字符串上使用 less than ?

标签 c# .net

使用 string.CompareTo(string) 我可以略微解决这个问题,但不容易阅读,而且我已经读到本地设置可能会影响结果。

有没有办法以更直接的方式简单地在 2 个字符串上使用 < 或 >?

最佳答案

您可以重载运算符,但您很少这样做。对我来说,"stringA"> "stringB" 不是什么该死的东西,它无助于提高 IMO 的可读性。这就是为什么运算符重载指南建议不要在含义不明显的情况下重载运算符。

编辑:Operator Overloading Usage Guidelines

此外,如果是 String,恐怕您不能这样做,因为您只能将运算符重载方法放在定义方法的类中。 如果 CompareTo 的语法困扰你,也许将它包装在扩展方法中会解决你的问题?

像那样:

public static bool IsLessThan(this string str, string str2) {
    return str.Compare(str2) < 0;
}

不过,我仍然觉得它让读者感到困惑。 最重要的是,您不能为 String 重载运算符。通常你可以做一些事情,比如声明一个部分并在那里填充你的重载,但是 String 是一个密封的类,所以这次不是。我认为名称合理的扩展方法是您最好的选择。您可以将 CompareTo 或一些自定义逻辑放入其中。

关于c# - 有没有办法在字符串上使用 less than ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5027815/

相关文章:

c# - Json .NET 序列化 - 更改属性值

c# - 在 TLS : The remote server return an error : 234 AUTH TLS OK 上使用 FtpWebRequest 的问题

c# - ServiceStack 的 RedisTypedClient - 可以使用字符串来定义类型吗?

c# - 我想以编程方式在 C# 中生成对 DataGridView 行的单击

c# - System.Net.MailMessage 允许一些无效的电子邮件地址格式

c# - 使用 C# .Net 访问 SQL Server 数据库的最佳方式

c# - 如何强制我的 .NET 应用程序以管理员身份运行?

c# - 如何将二进制转换为字节并在c#中作为文件写入

c# - Pcap.Net BadImageFormatException 未处理

c# - 当我需要 ILambdaContext 时,如何在 AWS Lambda 中构建 Serilog 的 DI