如何在c#中获取不同的字符

我有一个代码

String code="AABBDDCCRRFF"; 

在这段代码中,我想只检索不同的字符

输出应该像:

 ANS: ABDCRF 

  string code = "AABBDDCCRRFF"; string answer = new String(code.Distinct().ToArray()); 

Linq的Distinct返回序列中的不同元素。 当String类实现IEnumerable ,此上下文中的Distinct返回包含字符串中所有唯一字符的IEnumerable

 code.Distinct(); 

这是一种提供字符串和不同字符数的方法……

 using System; using System.Collections.Generic; namespace StringDict { class Program { static IDictionary charDict =new Dictionary(); static private string _charStr = "s;ldfjgsl;dkkjfg;lsdkfjg;lsdkfjg;lsdkfjg;lsdkfj"; private static int _outInt=0; static void Main(string[] args) { foreach (var ch in _charStr) { if (!charDict.TryGetValue(ch,out _outInt)) { charDict.Add(new KeyValuePair(ch,1)); } else { charDict[ch]++; } } Console.Write("Unique Characters: "); Console.WriteLine('\n'); foreach (var kvp in charDict) { Console.Write(kvp.Key); } Console.WriteLine('\n'); foreach (var kvp in charDict) { Console.WriteLine("Char: "+kvp.Key+" Count: "+kvp.Value); } Console.ReadLine(); } } } 

输出…

 Unique Characters: s;ldfjgk Char: s Count: 6 Char: ; Count: 6 Char: l Count: 6 Char: d Count: 6 Char: f Count: 6 Char: j Count: 6 Char: g Count: 5 Char: k Count: 6 

使用dotNet 2.0兼容代码的替代选项:

 public string RemoveDuplicateChars(string input) { var stringBuilder = new StringBuilder(input); foreach (char c in input) { stringBuilder.Replace(c.ToString(), string.Empty) .Append(c.ToString()); } return stringBuilder.ToString(); } 

在linq怎么样:

  var str = "AABBCCDDDDDDEEEEEFFF"; var unique = str.ToCharArray().Distinct(); Console.WriteLine("Answer: {0}.", string.Join(string.Empty, unique)); 

您可以按如下方式执行此操作

 var s = "AABBDDCCRRFF"; var result = s.Distinct(); var distinct = result.Aggregate(string.Empty, (current, c) => current + c.ToString()); Console.WriteLine(distinct); 

只是为了它的地狱 – 使用StringBuilder

  string code = "AABBDDCCRRFF"; StringBuilder sb = new StringBuilder(); code.Distinct().ToList().ForEach(c => sb.Append(c)); MessageBox.Show(sb.ToString());