Where has StringComparison.InvariantCultureIgnoreCase gone?

家住魔仙堡 提交于 2019-12-21 07:08:55

问题


I'm porting C# code to a Windows Store App. To my surprise the following code does not work anymore:

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

InvariantCulture and InvariantCultureIgnoreCase have been removed(*) from StringComparison.

Why?

And how do I replace it?

Edit: (*) Strictly speaking, it has not been removed, it is merely not available for Windows Store Apps. The result is the same: You cannot use it.


回答1:


Those specific options have not gone anywhere, but they are just not supported by Windows Store Apps.

If you look at MSDN for StringComparison Enumeration you'll see those specific options are not supported by the Portable library or .NET for Windows Store.

The only options that are supported for the Portable Library or Windows Store Apps are:

  • CurrentCulture
  • CurrentCultureIgnoreCase
  • Ordinal
  • OrdinalIgnoreCase

I can't speak for why, but there is not an option to "replace" as those values do not exist within the framework. You'll have to work with one of the other options that do exist, StringComparison.OrdinalIgnoreCase is probably going to be the easiest to work with.




回答2:


It looks like it doesn't support Windows Store App.

For Windows Store App, only avaiable you can use with green bag enumerations;

For general idea, people used OrdinalIgnoreCase in this case.

https://github.com/loqu8/sqlite-net/commit/bfa04a6a40b4f62000bb9c57d5517643404c9109



来源:https://stackoverflow.com/questions/14600694/where-has-stringcomparison-invariantcultureignorecase-gone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!