使用 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/