我有以下示例代码(由于限制而删除了使用和类):
static void Main(string[] args)
{
var n = int.Parse(Console.ReadLine());
var storedElements = new SortedSet<string>();
for (int i = 0; i < n; i++)
{
var command = Console.ReadLine().Split().ToList();
//Maybe Linq above to avoid the for cycle?
for (int k = 0; k < command.Count; k++)
{
storedElements.Add(command[k]);
}
}
Console.WriteLine(string.Join(" ", storedElements));
}
}
}
整个想法是拥有这个:
var command = Console.ReadLine().Split().ToList();
for (int k = 0; k < command.Count; k++)
{
storedElements.Add(command[k]);
}
避免。从这种意义上说,如果可能的话,我应该添加些什么来使Linq能够起作用:
storedElements.Add(Console.ReadLine()。Split()// WhatToAdd;
答案 0 :(得分:2)
SortedSet具有一个称为UnionWith的方法。 因此您可以使用它代替当前循环
for (int i = 0; i < n; i++)
{
var command = Console.ReadLine().Split().ToList();
storedElements.UnionWith(command);
}
起初这似乎很方便,但是查看源代码,我不确定它的性能是否比原始循环更好。如果这是关键代码,请对其进行更好的测试。
答案 1 :(得分:0)
找到了:
storedElements.UnionWith(Console.ReadLine()。Split());
哈希集没有AddRange()
谢谢!