哪个代码更好:
int index = fileName.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
要么
int index = fileName.LastIndexOf(".", StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 233
两种代码都不总是更好.他们做不同的事情,所以他们擅长不同的事情.
InvariantCultureIgnoreCase使用基于英语的比较规则,但没有任何区域变化.这对于仍然考虑到一些语言方面的中性比较是有益的.
OrdinalIgnoreCase比较没有文化方面的字符代码.这对于精确比较很有用,比如登录名,但不能用于排序带有异常字符的字符串,如é或ö.这也更快,因为在比较之前没有额外的规则要应用.
Sky*_*ers 54
FXCop通常更喜欢OrdinalIgnoreCase.但您的要求可能会有所不同
对于英语,差别很小.当你徘徊于具有不同书面语言结构的语言时,这就变成了一个问题.我没有足够的经验给你更多.
OrdinalIgnoreCase
OrdinalIgnoreCase属性返回的StringComparer将字符串中的字符进行比较,就像使用不变文化的约定将它们转换为大写一样,然后执行独立于语言的简单字节比较.在比较以编程方式生成的字符串或比较不区分大小写的资源(如路径和文件名)时,这是最合适的. http://msdn.microsoft.com/en-us/library/system.stringcomparer.ordinalignorecase.aspx
InvariantCultureIgnoreCase
InvariantCultureIgnoreCase属性返回的StringComparer以语言相关的方式比较字符串,忽略大小写,但不适合在任何特定文化中显示.它的主要应用是以不同文化的方式对字符串进行排序. http://msdn.microsoft.com/en-us/library/system.stringcomparer.invariantcultureignorecase.aspx
不变文化是InvariantCulture属性返回的CultureInfo对象.
InvariantCultureIgnoreCase属性实际上返回从StringComparer类派生的匿名类的实例.
Dea*_*ing 14
你似乎在做文件名比较,所以我只想补充一点,OrdinalIgnoreCase就是最接近什么NTFS呢(这是不完全一样,但它比更接近InvariantCultureIgnoreCase)
| 归档时间: |
|
| 查看次数: |
86522 次 |
| 最近记录: |