字符串比较中的StringComparison.InvariantCultureIgnoreCase去哪了?

20

我正在将C#代码移植到Windows商店应用程序。令我惊讶的是,以下代码不再起作用:

someString.Equals("someOtherString", StringComparison.InvariantCultureIgnoreCase)

InvariantCultureInvariantCultureIgnoreCase 已从 StringComparison 中移除(*)。

为什么?

我该如何替代它们?

编辑:(*) 严格来说,它并没有被移除,而是在 Windows Store 应用程序中不可用。结果是一样的:您无法使用它。


你说的“removed”是什么意思?它的使用方式类似于 someString.Equals("someOtherString") 吗? - Soner Gönül
虽然不是最理想的,但人们建议使用OrdinalIgnoreCase - Rawling
@SonerGönül:选项“InvariantCultureIgnoreCase”不可用。 - Sebastian Negraszus
2个回答

17

这些具体选项并没有消失,只是Windows Store应用程序不支持它们。

如果您查看MSDN的StringComparison枚举,您会发现这些特定选项不受便携式库或.NET for Windows Store支持。

便携式库或Windows Store应用程序支持的唯一选项是:

  • CurrentCulture
  • CurrentCultureIgnoreCase
  • Ordinal
  • OrdinalIgnoreCase

我不能说为什么,但框架中不存在“replace”选项。您必须使用其他已存在的选项之一,StringComparison.OrdinalIgnoreCase可能是最容易使用的。


谢谢,现在我知道要找什么(绿色购物袋)。 - Rawling
1
我知道,这就是我所说的“移除”的意思。但为什么要替换它,以及如何进行替换。这就是我的问题。 - Sebastian Negraszus
替换不是一个选项,因为它们在框架中不存在。你必须选择该框架支持的其他选项之一。至于为什么,我不太确定,之前也没有深入研究过。 - psubsee2003

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接