Подтвердить что ты не робот

Как получить разных персонажей

У меня есть код как

string code = "AABBDDCCRRFF";

В этом коде я хочу получить только отдельные символы

Вывод должен быть таким:

ANS: ABDCRF
4b9b3361

Ответ 1

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

Ответ 2

Linq Distinct возвращает отдельные элементы из последовательности. Поскольку класс String реализует IEnumerable<char>, Distinct в этом контексте возвращает IEnumerable<char>, содержащий все уникальные символы в строке.

code.Distinct();

Ответ 3

Альтернативный вариант с использованием кода, совместимого с 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();
}

Ответ 4

Здесь применяется подход, который предоставляет строку и количество отдельных символов...

using System;
using System.Collections.Generic;

namespace StringDict
{
    class Program
    {
        static IDictionary<char, int> charDict =new Dictionary<char, int>();
        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<char, int>(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

Ответ 5

Как насчет в linq:

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

Ответ 6

Вы можете сделать это следующим образом

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

Ответ 7

Здесь подход с группировкой по символам...

var code="AABBDDCCRRFF";
var unique = string.Concat(text.GroupBy(a => a).Select(a => a.Key));

Ответ 8

Просто черт возьми - используя StringBuilder

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