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. ASP.NET Core 与 .NET Core 演变与基础概述

    https://github.com/dotnet/corehttps://github.com/aspnet/home 今天看到 .NET Core 的改名计划,感觉跨平台的时代快要来了,从之前的 ...

  2. hadoop家族成员

    1.概述 使用hadoop已经有一段时间了,从最开始懵懂到迷茫,再到各种阅读与写作,再到如今各种组合应用,逐渐已经离不开hadoop了,hadoop在大数据行业的成功,加速了它本身的发展,各大社区都能 ...

  3. Vue笔记:使用 mock.js 模拟数据

    在我们的项目实际开发过程中,后端的接口往往是较晚才会提供出来,并且还要写接口文档,如果前端的开发都要等到接口开发完成才开始就非常影响项目整体开发进度了,mock.js 的出现使前后端分离并行开发成为可 ...

  4. 页面打印pdf格式文件

    '<td><button type="button" class="btn btn-primary" data-loading-text=&q ...

  5. 30-hadoop-hbase-安装squirrel工具

    如果您的工作要求您在一天之中连接许多不同的数据库 (oracle.DB2.mysql.postgresql.Sql Server等等),或者你经常需要在多个不同种类的数据库之间进行数导入导出.那么SQ ...

  6. mac 比较两个文件

    比较两个文件,输出两个文件都有的行,可以 1.使用comm命令 如下例: ------------------->$ cat 1s1.txt line line line line line l ...

  7. 【移入移出事件练习】【菜单】【选项卡】 -------this使用

    鼠标移入移出事件练习 建一个长100x100的红色 div,鼠标移入变为200x200绿色 .a { width:100px; height:100px; background-color:red ; ...

  8. [日常] Go语言圣经-函数递归习题

    练习 5.1: 修改findlinks代码中遍历n.FirstChild链表的部分,将循环调用visit,改成递归调用. 练习 5.2: 编写函数,记录在HTML树中出现的同名元素的次数. 练习 5. ...

  9. Spring Boot学习笔记(七)多数据源下的事务管理

    DataBaseConfig中加入事务管理器 DataBaseConfig的详解以及多数据源的配置参见我的上一篇文章 @Configuration @MapperScan(basePackages={ ...

  10. RequestDispatcher.forward转发与HttpServletResponse.sendRedirect重定向

    下面是HttpServletResponse.sendRedirect 方法实现的请求重定向与RequestDispatcher.forward 方法实现的请求转发的总结比较:(1)RequestDi ...