google code prettify

2015年6月2日 星期二

[LinQ] GroupBy - Comparer,Mapped

[LinQ] GroupBy -  Comparer,Mapped



public void Linq45() {
    string[] anagrams = {"from   ", " salt", " earn ", "  last   ", " near ", " form  "};

    var orderGroups = anagrams.GroupBy(
                w => w.Trim(),
                a => a.ToUpper(),
                new AnagramEqualityComparer()
                );
                 
    ObjectDumper.Write(orderGroups, 1);
}

public class AnagramEqualityComparer : IEqualityComparer<string>
{
    public bool Equals(string x, string y) {
        return getCanonicalString(x) == getCanonicalString(y);
    }

    public int GetHashCode(string obj) {
        return getCanonicalString(obj).GetHashCode();
    }
 
    private string getCanonicalString(string word) {
        char[] wordChars = word.ToCharArray();
        Array.Sort<char>(wordChars);
        return new string(wordChars);
    }
}

------------------output-------------------
...
  FROM
   FORM
...
   SALT
    LAST
...
   EARN
   NEAR

沒有留言:

張貼留言