博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET 2.0中的字符串比较
阅读量:6893 次
发布时间:2019-06-27

本文共 1942 字,大约阅读时间需要 6 分钟。

None.gif
平时编写代码的时候,字符串可能是大家接触得比较多的,所使用的字符串操作也应该得比较多的.在字符串比较方面,DOTNET2.0新增了一个枚举StringComparison:
None.gif
None.gif
None.gif
namespace
 System
ExpandedBlockStart.gif
{
ExpandedSubBlockStart.gif      
public enum StringComparison {
InBlock.gif         CurrentCulture,
InBlock.gif         CurrentCultureIgnoreCase,
InBlock.gif         InvariantCulture,
InBlock.gif         InvariantCultureIgnoreCase,
InBlock.gif         Ordinal,
InBlock.gif         OrdinalIgnoreCase
ExpandedSubBlockEnd.gif         }
ExpandedBlockEnd.gif}
None.gif
None.gif可能大家平时在进行字符串比较的时候根本没有考虑那么多,
"
= =
"
,
"
Eaqual()
"
用得不亦乐乎,其实这里面的东西也挺多,性能,区域信息等dot.gif
None.gif
1
.首先是StringComparison.Ordinal        在进行调用String.Compare(string1,string2,StringComparison.Ordinal)的时候是进行非语言(non
-
linguistic)上的比较,API运行时将会对两个字符串进行byte级别的比较,因此这种比较是比较严格和准确的,并且在性能上也很好,一般通过StringComparison.Ordinal来进行比较比使用String.Compare(string1,string2)来比较要快10倍左右.(可以写一个简单的小程序验证,这个挺让我惊讶,因为平时使用String.Compare从来就没想过那么多).StringComparison.OrdinalIgnoreCase就是忽略大小写的比较,同样是byte级别的比较.性能稍弱于StringComparison.Ordinal.
None.gif
None.gif
2
.StringComparison.CurrentCulture        是在当前的区域信息下进行比较,这是String.Compare在没有指定StringComparison的时候默认的比较方式.例子如下:
None.gif
None.gif Thread.CurrentThread.CurrentCulture 
=
 
new
 CultureInfo(
"
en-US
"
); 
//
当前的区域信息是美国
None.gif
            
string
 s1 
=
 
"
visualstudio
"
;
None.gif            
string
 s2 
=
 
"
windows
"
;
None.gif            Console.WriteLine(String.Compare(s1, s2,StringComparison.CurrentCulture)); 
//
输出"-1"
None.gif
None.gif            Thread.CurrentThread.CurrentCulture 
=
 
new
 CultureInfo(
"
sv-SE
"
); 
//
当前的区域信息是瑞典
None.gif
            Console.WriteLine(String.Compare(s1, s2,StringComparison.CurrentCulture)); 
//
输出"1"StringComarison.CurrentCultureIgnoreCase指在当前区域信息下忽略大小写的比较.
None.gif
None.gif
3
.StringComarison.InvariantCulture        使用StringComarison.InvariantCulture来进行字符串比较,在任何系统中(不同的culture)比较都将得到相同的结果,他是使用CultureInfo.InvariantCulture的静态成员CompareInfo来进行比较操作的.例子如下:
None.gif            Thread.CurrentThread.CurrentCulture 
=
 
new
 CultureInfo(
"
en-US
"
); 
//
当前的区域信息是美国
None.gif
            
string
 s1 
=
 
"
visualstudio
"
;
None.gif            
string
 s2 
=
 
"
windows
"
;
None.gif            Console.WriteLine(String.Compare(s1, s2,StringComparison.InvariantCulture)); 
//
输出"-1"
None.gif
None.gif            Thread.CurrentThread.CurrentCulture 
=
 
new
 CultureInfo(
"
sv-SE
"
); 
//
当前的区域信息是瑞典
None.gif
            Console.WriteLine(String.Compare(s1, s2,StringComparison.InvariantCulture)); 
//
输出"-1"
本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/10/27/263011.html,如需转载请自行联系原作者
你可能感兴趣的文章
mongodb Profiling 通过慢查询日志分析查询慢的原因 相应优化
查看>>
Memcached管理与监控工具 MemAdmin
查看>>
mysql 主从复制读写分离
查看>>
在百花之中干掉一个杂草连接...
查看>>
HTML文档基本格式
查看>>
for 循环的关键字 break和continue
查看>>
Map集合的四种遍历方式
查看>>
MySQL监控项一些指标
查看>>
Thinkpad T430s NVS5400M Ubuntu 12.04安装
查看>>
定时拍照功能
查看>>
[Unity3d]SecurityException报错解决办法
查看>>
SCVMM创建Linux虚拟机模版
查看>>
添加 Pool Member - 每天5分钟玩转 OpenStack(123)
查看>>
NSDECODER v1.0
查看>>
游侠原创:vmware下android-x86-4.4-RC1体验
查看>>
OpenMNS--管理网络的绝好工具
查看>>
ORACLE LINUX 6.1安装过程
查看>>
iPhone/Mac Objective-C内存管理原理
查看>>
整理Silverlight资源列表(三)-SL实际运用案例
查看>>
02-BGP选路原则和属性详解--weight
查看>>