我有以下代码行:

var connectionString = configItems.
                Find(item => item.Name.ToLowerInvariant() == "connectionstring");

VS 2010代码分析告诉我:

警告7 CA1308:Microsoft.全球化:在方法上...替换对字符串的调用.带有字符串的ToLowerInvariant().Toupper不变量().

这是否意味着ToUpperInvariant()更可靠?

推荐答案

谷歌给出了一个指向CA1308: Normalize strings to uppercase的提示

上面写着:

字符串应规范化为大写.一小部分字符在转换为小写时不能往返.往返是指将字符从一种语言环境转换为另一种以不同方式表示字符数据的语言环境,然后从转换的字符中准确检索原始字符.

所以,是的,ToUP比TLOWER更可靠.

将来,我建议先用谷歌搜索——我这样做是因为我收到了很多关于FxCop的警告;)有助于阅读相应的文档;)

.net相关问答推荐

.NET Async / Await:状态机如何知道何时继续执行?

如何从控制台应用程序中的 Task.WaitAll() 获取返回值?

在 C# 中将字符串转换为 colored颜色

.Include() 与 .Load() 在 EntityFramework 中的性能

使用 .NET 在 Windows 中创建弹出式 toastr 通知

我应该默认推荐密封类吗?

如何根据新的安全策略在 .Net 中发送邮箱?

什么决定了 Path.GetTempPath() 的返回值?

如何更改 double.ToString() 中小数点的符号?

在 C# 中将字符串转换为十六进制字符串

我们应该总是在类中包含一个默认构造函数吗?

如何在 C# 中将 null 值设置为 int?

如何将 XPath 与 XElement 或 LINQ 一起使用?

微软内部 PriorityQueue 中的错误?

CI服务器的比较?

内存分配:堆栈与堆?

如何以编程方式删除 WebClient 中的 2 个连接限制

通过继承扩展枚举

将控制台输出镜像到文件

程序员应该使用 SSIS,如果是,为什么?