C# 比较字符串忽略大小写

标签 c# string compare ignore-case

在此测试方法中,我需要比较 user3 的字符串,同时忽略区分大小写。我在想我应该使用 CultureInfo.InvariantCulture 来忽略大小写。这是实现此目标的最佳方法,还是有更好的方法?

            //set test to get user 
            AsaMembershipProvider prov = this.GetMembershipProvider();        

            //call get users
            MembershipUser user1 = prov.GetUser("test.user", false);
            //ask for the username with deliberate case differences
            MembershipUser user2 = prov.GetUser("TeSt.UsEr", false);
            //getting a user with Upper and lower case in the username.
            MembershipUser user3 = prov.GetUser("Test.User", false);

            //prove that you still get the user, 
            Assert.AreNotEqual(null, user1);
            Assert.AreNotEqual(null, user2);

            //test by using the “.ToLower()” function on the resulting string.
            Assert.AreEqual(user1.UserName.ToLower(), user2.UserName.ToLower());
            Assert.AreEqual(user1.UserName, "test.user");
            Assert.AreEqual(user3.UserName, "test.user");

最佳答案

使用 Assert.AreEqual使用 ignoreCase 参数更好,因为它不需要创建新字符串(并且,正如@dtb 所指出的,您可以按照特定文化信息的规则工作)

Assert.AreEqual(user1.UserName, user2.UserName, true, CultureInfo.CurrentCulture);

关于C# 比较字符串忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16471595/

相关文章:

java - Android 通过蓝牙连接到 Arduino。应用程序不会发送字符串

regex - 比较两个带有 If-Statement 的正则表达式失败

javascript - javascript中的 float 比较

c# - 将参数传递给正在运行的 Unity 游戏

java - 如何使用字符串有效地管理内存?

java - 将字符串从 JLabel 数组存储到字符串数组

python - 为什么 b'\x02' 与 Python 中的值 2 或 int(2) 不同?

c# - 查看接收者是否阅读了电报机器人的消息

c# - 非泛型 AsEnumerable

c# - asp.net网站如何集成Paypal支付网关