检查单词重新排序后的字符串是否相同-C#

检查单词重新排序后的字符串是否相同-C#,c#,C#,这里有一个字符串:-a-p-O 现在我们有了相同的,但顺序不同:-p-A-O 检测这两个字符串相同的最佳方法是什么?您可以使用split方法拆分两个字符串,使用Array.sort对数组进行排序,然后使用SequenceEqual方法比较两个结果数组。您可以尝试以下代码: var setA = "-A -P -O".Split(' '); var setB = "-P -A -O".Split(' '); var areSetsEqual = setA.Except(setB).Count()

这里有一个字符串:
-a-p-O

现在我们有了相同的,但顺序不同:
-p-A-O


检测这两个字符串相同的最佳方法是什么?

您可以使用
split
方法拆分两个字符串,使用
Array.sort
对数组进行排序,然后使用
SequenceEqual
方法比较两个结果数组。

您可以尝试以下代码:

var setA = "-A -P -O".Split(' ');
var setB = "-P -A -O".Split(' ');
var areSetsEqual = setA.Except(setB).Count() == 0 && setB.Except(setA).Count() == 0;
public bool CheckString(string s1, string s2)
{
  var firstArray = s1.Split(' ').ToArray();
  var secondArray = s2.Split(' ').ToArray();
  Array.Sort(firstArray);
  Array.Sort(secondArray);
  if (firstArray.Length != secondArray.Length) return false;
  for (int i = 0; i < firstArray.Length; i++)
    if (firstArray[i] != secondArray[i]) return false;
  return true;
}
public bool CheckString(字符串s1、字符串s2)
{
var firstArray=s1.Split(“”).ToArray();
var secondArray=s2.Split(“”).ToArray();
Sort(firstArray);
Sort(secondArray);
if(firstArray.Length!=secondArray.Length)返回false;
for(int i=0;i
您缺少
[theFirst].Split()。除了([theSecond].Split())
字符串“-A-P-O”永远不能与字符串“-P-A-O”相同。请更精确地定义相同,并且仅当且仅当两个字符串都没有重复项时才进行更正,否则有一个反例:
“-A-P-O-A”
-A-P-O-P“
预期为
,实际为
。。。。或Linq:
bool result=left.Split(“”).OrderBy(x=>x).SequenceEqual(right.Split(“”).OrderBy(x=>x))