C#中的加扰字符串操作

时间:2018-07-17 23:03:15

标签: c#

我写了一个简短的代码来检查两个加扰字符串的等效性。 但是代码无法按预期运行。

下面给出了代码。

        string firstString, secondString;
        Console.Write("Enter the First String: ");
        firstString = Console.ReadLine();
        Console.Write("Enter the 2nd   String: ");
        secondString = Console.ReadLine();
        char[] firstArray = firstString.ToArray();
        char[] secondArray = secondString.ToArray();           
        Array.Sort(firstArray);
        Array.Sort(secondArray);
        firstString = firstArray.ToString();
        secondString = secondArray.ToString();
        if(firstString == secondString)
        {
            Console.Write("Matched");
        }
        else 
            Console.Write("Not Matched");            
            Console.ReadKey();                        
    }        
}

1 个答案:

答案 0 :(得分:2)

firstArray.ToString();

将以字符串格式返回数组的类型。如果您进行调试,则会看到firstString的值为

  

System.Char []

而不是数组的内容。

因此,您的字符串比较将始终返回true


要获得结果,如果可以使用LINQ,则可以这样使用SequenceEqual

Console.Write("Enter the First String: ");
var firstString = Console.ReadLine();
Console.Write("Enter the 2nd   String: ");
var secondString = Console.ReadLine();
var list1 = firstString.ToList();
var list2 = secondString.ToList();
list1.Sort();
list2.Sort();

if (list1.SequenceEqual(list2))
    Console.Write("Matched");
else
    Console.Write("Not Matched");