uses GroupBy to partition trimmed elements of an array using a custom comparer : GroupBy : LINQ C# Source Code


Custom Search

C# Source Code » LINQ » GroupBy »

 

uses GroupBy to partition trimmed elements of an array using a custom comparer








    
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class MainClass {
    public static void Main() {

        string[] anagrams = { "from ", " salt", " earn ", " last ", " near ", " form " };

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

        foreach (var v in orderGroups) {
            Console.WriteLine(v);
        }
    }

    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);
        }
    }
}

 
    
   
  
   







HTML code for linking to this page:

Follow Navioo On Twitter

C# Source Code

 Navioo LINQ
» GroupBy