我有一个List<串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做到这一点?
答案 0 :(得分:4)
ListOne.Union(ListOne.SelectMany(i => i.Split('-')))
答案 1 :(得分:3)
尝试以下
List.AddRange(
ListOne
.Where(x => x.Contains("-"))
.SelectMany(x => x.Split('-'))
.Distinct()
.ToList());