代码之家  ›  专栏  ›  技术社区  ›  simonalexander2005

使用C中的LINQ#将列表<string>转换为列表<char>

  •  6
  • simonalexander2005  · 技术社区  · 14 年前

    我有一个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 回复  |  直到 14 年前
        1
  •  16
  •   Matthew Abbott    14 年前

    您可以使用LINQ的SelectMany方法,例如:

    var list = new List<string> { "Foo", "Bar" };
    
    var chars = list.SelectMany(s => s.ToCharArray());
    var distinct = chars.Distinct();
    
        2
  •  1
  •   Serkan Hekimoglu    14 年前

    获取LinQ结果并将其放入循环中,将每个字符与字符列表中的字符进行比较。

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