程序設計題 字符比較 字符中出現的字母相同

有如下输入:若干个由大写英文字母构成的单词,以’,’号隔开。如“ABCCD,CDA,BCDD,DCA,ADC,BCD,CDCAB”。 写一段程序,从输入中寻找由相同字符构成(重复字符出现次数也是一样)的单词组输出。
如以上输入,则输出:
第1组:ABCCD,CDCAB
第2组:CDA,DCA,ADC

http://blog.csdn.net/xianfajushi/article/details/11999309

string s = "ABCCD,CDA,BCDD,DCA,ADC,BCD,CDCAB";
var query = s.Split(',').GroupBy(x => x.OrderBy(y => y));
foreach (var item in query)
Console.WriteLine(string.Join(",", item.ToArray()));

发个2.0的。。

string s = "ABCCD,CDA,BCDD,DCA,ADC,BCD,CDCAB";
string[] arr = s.Split(',');
Hashtable ht = new Hashtable();
char[] carr;
string k = "";
foreach (string a in arr) {
    carr = a.ToCharArray();
    Array.Sort(carr);
    k = new string(carr);
    k = Regex.Replace(k, @"([A-Z])\1+", "$1", RegexOptions.Compiled);

    if (ht.ContainsKey(k)) ht[k] = ht[k].ToString() + "," + a;
    else ht[k] = a;
}

foreach (string v in ht.Values) Response.Write(v + "<br>");