tac*_*cos 1 .net c# vb.net string
我经常发现自己处理的字符串与其他字符串的比较应该忽略大小写,即Oracle参数.我看到太多ToUpper()或ToUpperInvariant().我想要构建一个包含对其stringgetter和setter为我处理这个问题的引用的小类,但我想知道这种类是否内置于.NET或一些广泛使用的库中.理想情况下,这样的课程将具有以下优势:
ToUpper()(阅读下一篇文章,了解为什么它不仅仅是实现一个特殊的比较器)char与不同值具有相同值的s) - 即,对于某些子集,char将有一个映射将每个索引带到其相反的引用索引,从而节省一些位数char取决于语言编辑0:我得到了#1点,我理解为什么最好使用这个StringComparison参数,但是默认编码一个单独Type的string使用它是不合理的StringComparison?否则,我打字到处都有我看到那样的现场(username,emailAddress,vendorCode等)
编辑1:第2点怎么样?如果char在字符串密集型应用程序中将所有索引缩短至少26,是否会浪费时间?也许这没有正确的措辞......
编辑2(校正数学):例如,在#1,说我有一个Username样字段,它总是持续在一些遗留DB通过存储过程作为上,并且该逻辑是太普遍在所有DB程序来改变.
通常的长度char是2 ^ 16我想,但是假设我知道DB将它视为最多有2 ^ 8.因此,我不仅要StringComparison一遍又一遍地明确地写一遍,而且应用程序每次浪费8位char.如果我不得不存储在存储器中约100000串对于一些操作,这意味着我不得不使用10 ^ 5*8 /(10 ^ 6*8)= 0.5 MB,这不是非常多的.
而不是调用的ToUpper或ToUpperInvariant用于字符串比较忽略情况下,你可以使用string.Equals过载String.Equals Method (String, String, StringComparison),这需要StringComparison参数指定忽略大小写.
if (string.Equals("ABC", "abc", StringComparison.InvariantCultureIgnoreCase))//true
{
}
Run Code Online (Sandbox Code Playgroud)
要么
if ("ABC".Equals("abc", StringComparison.InvariantCultureIgnoreCase))
{
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |