Determine if two strings with no repeating characters are permutations of each other
You could use the SetEqual&lt;T&gt; helper method from this answer.
It uses a dictionary as follows:


The dictionary is filled with the items of the first collection and with their number of occurences.
Number of occurences is decreased for each item in the second collection.


Thus your method can be rewritten as:

private static bool IsPermutation(string first, string second)
{
    if (first.Length != second.Length)
    {
        return false;
    }
    return SetEqual(first, second);
}




If you are sure that strings contain only unique chars, there is a more efficient approach using the HashSet&lt;T&gt;:

private static bool IsPermutation(string first, string second)
{
    if (first.Length != second.Length)
    {
        return false;
    }
    HashSet&lt;char&gt; chars = new HashSet&lt;char&gt;(first);
    return second.All(chars.Contains);
}