在C#</string>中使用Linq操作List <string>

时间:2010-09-04 04:32:12

标签: c# linq

我有一个List&lt;串GT;像

   List<String> ListOne = new List<string> { "A-B", "B-C" };

我需要拆分每个字符串,如果它包含' - '并添加到相同的列表

所以结果就像

 { "A-B", "B-C","A","B","C" };

现在我正在使用

       for (int i = 0; i < ListOne.Count; i++)
        {
            if (ListOne[i].Contains('-'))
            {
               List<String> Temp = ListOne[i].Split('-').ToList();
               ListOne= ListOne.Union(Temp).ToList();
            }
        }

有没有办法用LINQ做到这一点?

2 个答案:

答案 0 :(得分:4)

ListOne.Union(ListOne.SelectMany(i => i.Split('-')))

答案 1 :(得分:3)

尝试以下

List.AddRange(
  ListOne
    .Where(x => x.Contains("-"))
    .SelectMany(x => x.Split('-'))
    .Distinct()
    .ToList());