https://msdn.microsoft.com/zh-cn/library/z883w3dc(v=vs.80).aspx

List 中会保留集合中元素的顺序。

如果新的 Count(当前 Count 加上集合的大小)大于 Capacity,则会通过自动重新分配内部数组增大 List 的容量以容纳新元素,并在添加新元素之前将现有元素复制到新数组中。

如果 List 可以在不增加 Capacity 的情况下容纳新元素,则此方法是 O(n) 运算,其中 n 是要添加的元素数。如果需要增加此容量以容纳新元素,则此方法变为 O(n + m) 运算,其中 n 是要添加的元素数,m 是 Count

List.AddRange :将指定集合的元素添加到 List 的末尾。

  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. public class Example
  5. {
  6. public static void Main()
  7. {
  8. string[] input = { "Brachiosaurus",
  9. "Amargasaurus",
  10. "Mamenchisaurus" };
  11.  
  12. List<string> dinosaurs = new List<string>(input);
  13.  
  14. Console.WriteLine("\nCapacity: {0}", dinosaurs.Capacity);
  15.  
  16. Console.WriteLine();
  17. foreach( string dinosaur in dinosaurs )
  18. {
  19. Console.WriteLine(dinosaur);
  20. }
  21.  
  22. Console.WriteLine("\nAddRange(dinosaurs)");
  23. dinosaurs.AddRange(dinosaurs);
  24.  
  25. Console.WriteLine();
  26. foreach( string dinosaur in dinosaurs )
  27. {
  28. Console.WriteLine(dinosaur);
  29. }
  30.  
  31. Console.WriteLine("\nRemoveRange(2, 2)");
  32. dinosaurs.RemoveRange(, );
  33.  
  34. Console.WriteLine();
  35. foreach( string dinosaur in dinosaurs )
  36. {
  37. Console.WriteLine(dinosaur);
  38. }
  39.  
  40. input = new string[] { "Tyrannosaurus",
  41. "Deinonychus",
  42. "Velociraptor"};
  43.  
  44. Console.WriteLine("\nInsertRange(3, input)");
  45. dinosaurs.InsertRange(, input);
  46.  
  47. Console.WriteLine();
  48. foreach( string dinosaur in dinosaurs )
  49. {
  50. Console.WriteLine(dinosaur);
  51. }
  52.  
  53. Console.WriteLine("\noutput = dinosaurs.GetRange(2, 3).ToArray()");
  54. string[] output = dinosaurs.GetRange(, ).ToArray();
  55.  
  56. Console.WriteLine();
  57. foreach( string dinosaur in output )
  58. {
  59. Console.WriteLine(dinosaur);
  60. }
  61. }
  62. }
  63.  
  64. /* This code example produces the following output:
  65.  
  66. Capacity: 3
  67.  
  68. Brachiosaurus
  69. Amargasaurus
  70. Mamenchisaurus
  71.  
  72. AddRange(dinosaurs)
  73.  
  74. Brachiosaurus
  75. Amargasaurus
  76. Mamenchisaurus
  77. Brachiosaurus
  78. Amargasaurus
  79. Mamenchisaurus
  80.  
  81. RemoveRange(2, 2)
  82.  
  83. Brachiosaurus
  84. Amargasaurus
  85. Amargasaurus
  86. Mamenchisaurus
  87.  
  88. InsertRange(3, input)
  89.  
  90. Brachiosaurus
  91. Amargasaurus
  92. Amargasaurus
  93. Tyrannosaurus
  94. Deinonychus
  95. Velociraptor
  96. Mamenchisaurus
  97.  
  98. output = dinosaurs.GetRange(2, 3).ToArray()
  99.  
  100. Amargasaurus
  101. Tyrannosaurus
  102. Deinonychus
  103. */

c# List AddRange的更多相关文章

  1. Add和AddRange的区别

    Add和AddRange区别 Add和AddRange Add:将指定的对象添加到……中 AddRange:向……末尾,添加数组 - 在群体操作时,使用AddRange取代Add 用AddRange可 ...

  2. C# AddRange为数组添加多个元素的代码

    将代码过程中重要的代码片段做个收藏,下面代码段是关于C# AddRange为数组添加多个元素的代码,希望对小伙伴有所用处.ArrayList ab = new ArrayList();ab.Add(& ...

  3. HttpWebRequest.AddRange 支持long类型

    很久很久以前,在哪个FAT32格式还流行的年代,文件大小普遍还没超过4G的年代,.Net已经出来了. 而那时候.Net实现的HTTP断点续传协议,还没预料到如此普及(我猜的).那时候的HttpWebR ...

  4. AddRange 取代 Add

    cmd.Parameters的Add方法是增加一个参数,增加多个参数的的时候使用一个foreach循环,cmd.Parameters的AddRange方法是增加一个参数的数组. Add:将指定的对象添 ...

  5. Add和AddRange的使用

    Add 是每次将单个元素添加到集合里面 AddRange可以一次性添加多个元素到集合里面 AddRange例子:         public static int ExecuteCommand(st ...

  6. 【译】第42节---EF6-DbSet.AddRange & DbSet.RemoveRange

    原文:http://www.entityframeworktutorial.net/entityframework6/addrange-removerange.aspx EF 6中的DbSet引入了新 ...

  7. 批量 1 insert into select 2 sqldataadapter.update 3 SELECT INTO FROM (要求目标表不存在) 4 AddRange(ef) 5 MySqlBulkLoader.Load() 6 BatchInsert 7 insert bulk

     insert into a(col1,col2) select top 1 '1','2' from a union select top 1 '3','4' from a    SELECT IN ...

  8. C#集合中的Add与AddRange方法

    C#.NET的集合主要位于System.Collections和System.Collections.Generic(泛型)这两个namespace中. 1.System.Collections 比如 ...

  9. AutoDetectChangesEnabled及AddRange解决EF插入的性能问题

    转自:http://www.cnblogs.com/nianming/archive/2013/06/07/3123103.html#2699851 记录下. 园友莱布尼茨写了一篇<Entity ...

随机推荐

  1. 【bzoj1018】 SHOI2008—堵塞的交通traffic

    http://www.lydsy.com/JudgeOnline/problem.php?id=1018 (题目链接) 题意 一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有一条道 ...

  2. 【poj3342】 Party at Hali-Bula

    http://poj.org/problem?id=3342 (题目链接) 题意 给出一棵树,要求在不存在两个节点相邻的条件下,选出尽可能多的节点,并且判断是否有多种选法. Solution 很水的树 ...

  3. BZOJ2432 [Noi2011]兔农

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  4. Bzoj1001 [BeiJing2006]狼抓兔子

    Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 19759  Solved: 4883 Description 现在小朋友们最喜欢的"喜羊羊与 ...

  5. SPOJ GSS2 Can you answer these queries II

    Time Limit: 1000MS   Memory Limit: 1572864KB   64bit IO Format: %lld & %llu Description Being a ...

  6. SQL查询排序某字段并选前N条数据

    看了网上各种乱七八糟的答案,无语. 明明这一句话就行了. select * from personinfo order by credit DESC limit 0,5

  7. Ubuntu回收站

    以前删除文件经常Move to trash,今天想清空发现根本不知道回收站在哪里,囧.遂Google之,于是发现在 -/.local/share/Trash目录下. 打开目录看看有什么东西: ➜ ~ ...

  8. mac OS(OS X)的OI编译环境配置指南

    编译环境:gdb+Atom 如何安装gdb: http://logic0.blog.163.com/blog/static/1889281462014183271283/   Atom下载地址: ht ...

  9. Docker入门教程(一)介绍

    http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...

  10. SaltStack项目实战(七)

    上文 http://www.cnblogs.com/shhnwangjian/p/6027992.html 四.memcached 1)创建www用户 mkdir -p /srv/salt/prod/ ...