Reducing memory footprint in anagram-finding program for text
and just shortening it up Jesse's answer...

private static bool IsAnagramOf(this string word1, string word2)
{
    return word1
        .OrderBy(x =&gt; x)
        .SequenceEqual(word2.OrderBy(x =&gt; x));
}

static void Main(string[] args)
{
    using (var si = new StreamReader(Console.OpenStandardInput(8192)))
    {
        Console.SetIn(si);
        var split = (Console.ReadLine() ?? "").Split(new[] {',', '.', ' '}, StringSplitOptions.RemoveEmptyEntries);
        split.SelectMany(t =&gt; split.Where(s =&gt; (t != s) &amp;&amp; t.IsAnagramOf(s))).ToList().ForEach(Console.WriteLine);                
        Console.ReadLine();
    }
}