这两个类有什么区别?

我使用了System.StringComparer.OrdinalIgnoreCase()System.StringComparison.OrdinalIgnoreCase(),两者都产生相同的结果。它们有什么不同还是两者都相同?

最佳答案

StringComparer是一种Class,它实现了诸如IComparerIEqualityComparerIComparer<String>的比较接口(interface),因此可以用来比较两个字符串。
StringComparison只是一个Enum,您可以将其传递给某些方法以指示所需的比较类型。在那种情况下,我怀疑底层方法将使用StringComparer进行实际比较。

何时使用每个

String.Equals这样的特定于字符串的方法仅接受StringComparison值,因此在这种情况下将使用此值。

您将对使用比较器作为参数的方法使用StringComparer,并在将比较字符串的上下文中调用该方法。例如,如果您有一个List<String>,并且想要以不区分大小写的方式Sort该列表,则可以执行以下操作:

myList.Sort(StringComparer.OrdinalIgnoreCase);

关于c# - System.StringComparer和System.StringComparison类之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8918032/

10-12 15:23