这两个类有什么区别?
我使用了System.StringComparer.OrdinalIgnoreCase()
和System.StringComparison.OrdinalIgnoreCase()
,两者都产生相同的结果。它们有什么不同还是两者都相同?
最佳答案
StringComparer
是一种Class
,它实现了诸如IComparer
,IEqualityComparer
,IComparer<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/