相关疑难解决方法(0)

ToLowerInvariant()有什么问题?

我有以下代码行:

var connectionString = configItems.
                Find(item => item.Name.ToLowerInvariant() == "connectionstring");
Run Code Online (Sandbox Code Playgroud)

VS 2010代码分析告诉我以下内容:

警告7 CA1308:Microsoft.Globalization:在方法中...用String.ToUpperInvariant()替换对'string.ToLowerInvariant()'的调用.

这意味着ToUpperInvariant()更可靠吗?

.net c# .net-4.0

63
推荐指数
2
解决办法
2万
查看次数

如何在Unicode中将字符串设置为大写/小写?

这主要是一个我非常好奇的理论问题.(我不是试图通过自己编写或任何东西来做到这一点,我不是在重新发明轮子.)

我的问题是大写/小写等价表如何适用于Unicode.

例如,如果我必须在ASCII中执行此操作,我会使用一个字符,如果它在[az]范围内,我会将A和a之间的差值相加.

如果它不属于该范围,我会为10个左右的重音字符加上一个小等价表加上ñ.(或者,我可以只有一个包含256个条目的完整等价数组,其中大多数与输入相同)

但是,我猜测有一种更好的方法来指定Unicode中的等价,假设有数十万个字符,理论上,可以添加一种新语言或一组字符(我期待你当发生这种情况时,不需要修补窗口).

Windows是否为每个字符都有一个巨大的硬编码等价表?或者这是如何实现的?

一个相关的问题是SQL Server如何实现基于Unicode的重音不敏感和不区分大小写的查询.它是否有一个内部表格,告诉它éëeÉÉ和Ë都等同于"e"?

在比较字符串时,这听起来不是很快.

它如何快速访问索引?它是否已将索引值转换为其"基本"字符,对应于该字段的整理?

有谁知道这些东西的内部?

谢谢!

theory string unicode low-level uppercase

14
推荐指数
2
解决办法
1万
查看次数

标签 统计

.net ×1

.net-4.0 ×1

c# ×1

low-level ×1

string ×1

theory ×1

unicode ×1

uppercase ×1