C#中如何比较两个未排序的字符串?

Maj*_*ush 1 c#

我有 2 个字符串,例如“abcdefg”“bcagfed”我想编写一个方法来确定这两个字符串相等

*排序或未排序并不重要。在我的示例中,上面的字符串是相等的。

一个答案是:在检查相等性之前,对它们进行排序,然后可以轻松检查相等性,但这不是最快的方法

小智 6

我更喜欢使用SequenceEqual,它检查两个源序列是否长度相等以及它们对应的元素是否相等。

var str1 = "abcdefg"; 
var str2 = "bcagfed";

var areEqual = Enumerable.SequenceEqual(str1.OrderBy(c => c), str2.OrderBy(c => c));
Run Code Online (Sandbox Code Playgroud)