我有四个字符串,如下所示。尽管它们具有不同的字符顺序和逗号后的不同间距——但它们被认为具有same business value
.
- 如何检查所有字符串是否相同(根据上面解释的业务场景)?我有以下代码,但在逗号后有空格的情况下它会失败。
- 有什么比(为此)更好的方法
Enumerable.SequenceEqual
?
注意:“A,B”将被视为与“B,A,B,A,B”相同
注意:我正在Visual Studio 2010
使用.Net Framework 4
代码
string firstString = "A,B,C";
string secondString = "C,A,B";
string thirdString = "A,B, C";
string fourthString = "C, A,B";
//Set 1 Test
List<string> firstList = new List<string>(firstString.Split(','));
List<string> secondLsit = new List<string>(secondString.Split(','));
bool isStringsSame = Enumerable.SequenceEqual(firstList.OrderBy(t => t), secondLsit.OrderBy(t => t));
Console.WriteLine(isStringsSame);
//Set 2 Test
List<string> thirdList = new List<string>(thirdString.Split(','));
List<string> fourthList = new List<string>(fourthString.Split(','));
bool isOtherStringsSame = Enumerable.SequenceEqual(thirdList.OrderBy(t => t), fourthList.OrderBy(t => t));
Console.WriteLine(isOtherStringsSame);
Console.ReadLine();
更新:
用于OrdianlIgnoreCase
忽略大小写敏感性 如何在不区分大小写模式下使用 HashSet<string>.Contains() 方法?
参考: