C#比较字符串ignoreCase

use*_*672 5 c# string compare ignore-case

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

            //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");
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 6

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

Assert.AreEqual(user1.UserName, user2.UserName, true, CultureInfo.CurrentCulture);
Run Code Online (Sandbox Code Playgroud)