c# 为什么要使用Array、ArrayList、List?
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?的更多相关文章
- 类 Array Arraylist List Hashtable Dictionary
总结C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 我们用的比较多的非泛型集合类主要有 ArrayList类 和 HashT ...
- c#中Array,ArrayList 与List<T>的区别、共性与转换
本文内容来自我写的开源电子书<WoW C#>,现在正在编写中,可以去WOW-Csharp/学习路径总结.md at master · sogeisetsu/WOW-Csharp (gith ...
- Array,ArrayList、List<T>、HashSet<T>、LinkedList<T>与Dictionary<K,V>
Array: 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候 ...
- 解析C#中[],List,Array,ArrayList的区别及应用
[] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. Array 是针对任意类型.固定长度的. ArrayList 是针对任意类型.任意长度的. Array 和 ArrayLis ...
- .net中的Array,ArrayList和List
Array:任意类型,定长 ArrayList:任意类型,不定长 List:特定类型,不定长 Array和ArrayList是通过存储object类型实现可以存储任意类型数据,使用时需要拆箱和装箱
- [置顶] Array ArrayList LinkList的区别剖析
这是一个面试中我们经常被问到的问题 Array.ArrayList.LinkList之间的区别:Array.ArrayList.LinkList均属于泛型的范畴,都用来存放元素,主要区别是Array是 ...
- Array,ArrayList 和 List<T>的选择和性能比较.
Array Class Provides methods for creating, manipulating, searching, and sorting arrays, thereby serv ...
- C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)
int [] numbers = new int[5]; // 长度为5,元素类型为 int.string[,] names = new string[5,4]; // 5*4 的二维数组byte[] ...
- Array,ArrayList,泛型List比较
在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序 ...
- C# 中的集合(Array/ArrayList/List<T>/HashTable/Dictionary)
int [] numbers = new int[5]; // 长度为5,元素类型为 int. string[,] names = new string[5,4]; // 5*4 的二维数组 byte ...
随机推荐
- 最大子数组问题/Maximum Subarray
问题描述: Find the contiguous subarray within an array (containing at least one number) which has the la ...
- MyCAT 源码解析 —— 分片结果合并(使用unsaferow)
1. 概述 2. 多分片执行 SQL 3. 合并多分片结果 3.1 记录头(header) 3.2 记录行(row) 3.1 AbstractDataNodeMerge 3.2 DataNodeMer ...
- Linux 普通用户启动nginx
众所周知,apache的80端口为系统保留端口,如果通过其他非root用户启动,会报错如下: ()Permission denied: make_sock: could not bind to add ...
- Netbeans 8.0配置Python开发环境
1. 菜单栏:工具->插件->设置->添加 配置如下信息: http://deadlock.netbeans.org/hudson/job/nbms-and-javadoc/last ...
- 【angular5项目积累总结】侧栏菜单 navmenu
View Code import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/co ...
- [C#]记一次解析XML转对象的笔记
项目中调用第三方API,返回格式是XML字符串,需要将XML反序列化为对象,格式如下: <?xml version="1.0"?> <Response xmlns ...
- C#微信小程序服务端获取用户解密信息
using AIOWeb.Models; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.C ...
- 撩课-Java每天5道面试题第19天
126.Struts2中的拦截器有什么用?列举框架提供的拦截器名称? )拦截器是struts2核心组成部分, 它提供了一种机制,使得开发者 可以定义一个特定的功能模块, 这个模块会在Action执行之 ...
- HDU6188
Duizi and Shunzi Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU4292(KB11-H 最大流)
Food Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...