использование LINQ в C# для преобразования списка в список

у меня есть список строк в C#, и я хочу создать список уникальных символов, которые находятся в строках в списке, используя LINQ.

Я до сих пор работал над тем, как превратить список в список, но я не могу понять, как заставить LINQ идти дальше.

то, что у меня есть до сих пор, выглядит следующим образом:

List<string> dictionary = new List<string>(someArray);
List<string[]> uniqueCharacters = dictionary.ConvertAll(s => s.Split());

Я считаю, что мне нужно что-то вроде

List<char> uniqueCharacters =
     dictionary.ConvertAll(s => s.Split()).SelectAll(t, i=>t[i][0]);

2 ответов


вы можете использовать метод SelectMany LINQ, например:

var list = new List<string> { "Foo", "Bar" };

var chars = list.SelectMany(s => s.ToCharArray());
var distinct = chars.Distinct();

получите результат LinQ и поместите его в цикл, сравните каждый символ со списком символов.

foreach (string character in dictionary)
        {
            if (!(uniqueCharacters).Contains(character))
            {
                uniqueCharacters.Add(character);
            }
        }