C#大量插入数据结构
在C#中,您可以执行以下操作:C#大量插入数据结构,c#,C#,在C#中,您可以执行以下操作: List<int> registers = new List<int> { 1, 2, 3, 4 }; List<int> register = somewhere(); register.Add(1); register.Add(2); register.Add(3); register.Add(4); List registers=新列表{1,2,3,4}; 这将生成一个列表,其中包含1、2、3和4。假设某个函数给了我
List<int> registers = new List<int> { 1, 2, 3, 4 };
List<int> register = somewhere();
register.Add(1);
register.Add(2);
register.Add(3);
register.Add(4);
List registers=新列表{1,2,3,4};
这将生成一个列表,其中包含1、2、3和4。假设某个函数给了我一个列表,我想插入一组数字,如下所示:
List<int> registers = new List<int> { 1, 2, 3, 4 };
List<int> register = somewhere();
register.Add(1);
register.Add(2);
register.Add(3);
register.Add(4);
List register=somewhere();
注册。添加(1);
注册。添加(2);
注册。添加(3);
注册。添加(4);
有没有一种更简洁的方法可以像上面的代码片段那样执行此操作?假设新项目已经是某种可枚举的形式,该方法允许您一次性添加所有项目:
var toBeAdded = new int[] { 1,2,3,4 };
register.AddRange(toBeAdded);
你是说像这样的
List<int> register = somewhere();
register.AddRange(new List<int> { 1, 2, 3, 4 });
List register=somewhere();
AddRange(新列表{1,2,3,4});
我认为你能得到的最干净的东西是:
List<int> register = somewhere();
register.AddRange(new[] { 1, 2, 3, 4 });
List register=somewhere();
register.AddRange(新[]{1,2,3,4});
但是,隐式键入数组可能并不总是可能的。请注意,虽然您的示例在语法上更清晰,但它不会提供任何性能优势,因为集合初始值设定项仍然会逐个添加项。要添加到DrJokepu的注释中:具体的问题是,在多次调用add时(集合初始值设定项的作用是什么)如果恰好有足够的元素(可能是30+),则始终会多次调整内部数组的大小,AddRange即使在这些情况下也可能只执行一次调整大小。如果您使用数组初始值设定项,则不会进行任何调整。我很失望,我期望有一些大规模的
:P
是的,如果您使用集合初始值设定项硬编码真正大规模的插入,这就是TDWTF材料。