c#也是一直在进化的,从数组进化到ArrayList,再进化到泛型就是个例子。

  static void Main(string[] args)
{
//数组的增删改查
//定义数组
int[] Numbers = new int[] { ,,,, };
Console.WriteLine("原数组为:");
StringBuilder sb = new StringBuilder();
foreach (var item in Numbers)
{
sb.Append(item+",");
}
Console.WriteLine(sb.ToString());
Console.WriteLine("现在在0位置插入9");
Add(Numbers, , );
Console.WriteLine("现在在1位置插入9");
Add(Numbers, , );
Console.WriteLine("现在在2位置插入9");
Add(Numbers, , );
Console.WriteLine("现在在3位置插入9");
Add(Numbers, , );
Console.WriteLine("现在在4位置插入9");
Add(Numbers, , );
Console.WriteLine("现在在5位置插入9");
Add(Numbers, , );
Console.WriteLine("数组不能动态改变,所以用ArrayList");
ArrayList arrayInt = new ArrayList();
for (int i = ; i < ; i++)
{
arrayInt.Add(i+);
}
Console.WriteLine("现在在ArrayList中的3位置增加9");
arrayInt.Insert(,);
StringBuilder sbArray = new StringBuilder();
foreach (var item in arrayInt)
{
sbArray.Append(item+",");
}
Console.WriteLine(sbArray.ToString());
Console.WriteLine("因为ArrayList中都转换为object,有性能消耗,因此微软引入了泛型");
List<int> listInt = new List<int>();
for (int i = ; i < ; i++)
{
listInt.Add(i+);
}
Console.WriteLine("现在在List中的3位置增加9");
listInt.Insert(,);
StringBuilder sbList = new StringBuilder();
foreach (var item in listInt)
{
sbList.Append(item + ",");
}
Console.WriteLine(sbList.ToString());
Console.ReadKey(); }
/// <summary>
/// 数组的添加
/// </summary>
/// <param name="numbers">原始数组</param>
/// <param name="i">要添加的位置从0开始</param>
/// <param name="k">要添加的值</param>
public static void Add(int[] numbers,int i,int k)
{
if (i<&&i>numbers.Length)
{
Console.WriteLine($"要插入的位置只能0到{numbers.Length}之间"); }else
{
//因为数组定义就不能更改,所以必须把原数组拷贝到新数组中
int[] newArray = new int[numbers.Length+];
int m = ; for (int j = ; j < numbers.Length; j++)
{
if (j!=i)
{
//添加到新数组中
newArray[m] = numbers[j];
m++;
}
else if(j==i)
{
newArray[j] = k;
newArray[j+]= numbers[j];
m = j + ;
} }
//如果要插入的位置就是原数组的最大长度+1,则直接赋值
if (i == numbers.Length)
{
newArray[i] = k;
}
StringBuilder sb = new StringBuilder();
foreach (var item in newArray)
{
sb.Append(item+",");
}
Console.WriteLine(sb.ToString());
}
}

c# 为什么要使用Array、ArrayList、List?的更多相关文章

  1. 类 Array Arraylist List Hashtable Dictionary

    总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue  我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...

  2. c#中Array,ArrayList 与List<T>的区别、共性与转换

    本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...

  3. Array,ArrayList、List<T>、HashSet<T>、LinkedList<T>与Dictionary<K,V>

    Array: 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候 ...

  4. 解析C#中[],List,Array,ArrayList的区别及应用

    [] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList 是针对任意类型.任意长度的. Array 和 ArrayLis ...

  5. .net中的Array,ArrayList和List

    Array:任意类型,定长 ArrayList:任意类型,不定长 List:特定类型,不定长 Array和ArrayList是通过存储object类型实现可以存储任意类型数据,使用时需要拆箱和装箱

  6. [置顶] Array ArrayList LinkList的区别剖析

    这是一个面试中我们经常被问到的问题 Array.ArrayList.LinkList之间的区别:Array.ArrayList.LinkList均属于泛型的范畴,都用来存放元素,主要区别是Array是 ...

  7. Array,ArrayList 和 List<T>的选择和性能比较.

    Array Class Provides methods for creating, manipulating, searching, and sorting arrays, thereby serv ...

  8. C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)

    int [] numbers = new int[5]; // 长度为5,元素类型为 int.string[,] names = new string[5,4]; // 5*4 的二维数组byte[] ...

  9. Array,ArrayList,泛型List比较

    在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...

  10. C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)

    int [] numbers = new int[5]; // 长度为5,元素类型为 int. string[,] names = new string[5,4]; // 5*4 的二维数组 byte ...

随机推荐

  1. 全网最详细的Hadoop HA集群启动后,两个namenode都是active的解决办法(图文详解)

    不多说,直接上干货! 这个问题,跟 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 是大同小异. 欢迎大家,加入我的微信公众号:大数据躺过的坑  ...

  2. NIO 基础之 Buffer

    文章目录 1. 概述 2. 基本属性 3. 创建 Buffer 3.1 关于 Direct Buffer 和 Non-Direct Buffer 的区别 4. 向 Buffer 写入数据 5. 从 B ...

  3. Linux-(rcp,scp)

    rcp命令 1.命令格式: rcp [参数] [源文件] [目标文件] 2.命令功能: rcp命令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前 ...

  4. Tomcat学习总结(2)——Tomcat使用详解

    一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...

  5. 每天一个linux命令(目录)

    转:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天 ...

  6. 简单聊聊SOA和微服务

    转自:https://juejin.im/post/592f87feb123db0064e5ef7c  (2017-06) 简单聊聊SOA和微服务 架构设计中的朴素主义 前两天和一个朋友聊天,他向我咨 ...

  7. spinnaker自动发布k8s部署应用<一>

    一.准备环境 !docker-ce---17.06.2-ce !k8s集群----1.11.1 !helm部署工具---helm-v2.10.0 !spinnaker-charts---spinnak ...

  8. WEB开发框架性能排行与趋势分析

    WEB开发框架性能基准测试解读与趋势分析 TechEmpower的<Web Framework Benchmarks>性能基准测试,是关注Web开发框架发展的重要途径.但是内容数据众多,每 ...

  9. UIView动画上

    主要参考:http://blog.csdn.net/huifeidexin_1/article/details/7597868  http://www.2cto.com/kf/201409/33566 ...

  10. syslog - 日志文件详解

    日志文件,是linux最为重要的记录文件,记录着日常的操作. 我们在linux编程的时候,通常会使用日志文件记录操作和信息,日志系统提供了我们几个API接口供调用 1. API void openlo ...