今天咱们了解下C#中的数组

后面会讲到集合、泛型集合

咱们分开来讲,免得出现混乱

讲完这三个,咱们再汇总一下,看看有什共同点和不同点

定义一个数组:

        

             int[] i = new int[];

             int[] j = new int[] { , , , , , , , , ,  };

两种定义方式

数组定义:一定要规定长度、一定要规定类型

当然,上面是int类型的数组,你也可以定义string类型的数组,但是数组就一定要有长度和类型的限制

那咱们一起来尝试下C#中的冒泡排序,咱们分别用int型和string型来做

int类型的冒泡排序

代码贴入

             int[] i = new int[] { , , , , , , , , ,  };

             for (int a = ; a < i.Length; a++)
{
for (int b = a + ; b < i.Length; b++)
{
if (i[a] < i[b])
{
int j = i[a];
i[a] = i[b];
i[b] = j;
}
}
Console.WriteLine(i[a]);
}
Console.ReadLine();

string类型

代码贴入

             string[] ss = new string[] { "aaa", "a", "aa", "aaaaa", "aaaa" };
//长度从大到小打印出来,从小到大打印出来
for (int i = ; i < ss.Length; i++)
{
for (int j = i + ; j < ss.Length; j++)//长度比较大小
{
if (ss[i].Length < ss[j].Length)//如果第一段长度小于第二段长度
{
string b = ss[i]; // 那么位置调换过来
ss[i] = ss[j];
ss[j] = b;
}
}
Console.WriteLine(ss[i]);
}
Console.ReadLine();

下面分别是其效果图

int类型是依照其大小判断

string类型是依照其长度大小来判断

2017-11-04   11:49:38

数组再充实

创建数组

 byte[] a = new byte[];  //创建一个名为a,长度为5的byte型一维数组。

 int[] a = new int[] {, , , , };  //也可以采用初始化方式同时给赋值。

 double[,] d = new double[, ];  //建立二维数组

 double[,] d = new double[,] { {,}, {,}, {,}, {,} };  //声明一个4行2列的二维数组并赋值

多维数组

 int[, ,] s = new int[, , ];
for (int i = ; i < ; i++) //通过三个for循环对该三维数组进行赋值
{
for (int j = ; j < ; j++)
{
for (int m = ; m < ; m++)
{
s[i, j, m] = i + j + m;
}
}
}
foreach (int k in s) //用foreach循环输出数组中的所有元素导控制台显示
{
Console.Write(k.ToString() + " ");
}
Console.ReadKey();

动态数组

3、动态数组

ArrayList类包含在System.Collections 命名空间中。

Capacity:获取或设置 ArrayList 所包含的元素数。

Count:获取 ArrayList 所包含的实际元素数。

Add():将对象添加到 ArrayList 的结尾处。

Clear():从 ArrayList 中移除所有元素。

Contains():确定某元素是否在 ArrayList 中。

Insert():将对象插入到 ArrayList 的指定索引处。

RemoveAt():移除 ArrayList 的指定索引处的元素。

Reverse():将指定范围内元素的顺序反转。

Sort():用指定的比较器对 ArrayList 某个范围内的元素进行排序。

 ArrayList a1 = new ArrayList();
//向ArrayList 结尾处添加4种不同类型的对象
a1.Add(0.05f);
a1.Add("sss");
a1.Add('s');
a1.Add();
Console.WriteLine("当前ArrayList 里的全部元素如下:");
for (int i = ; i < ; i++)
{
Console.Write(a1[i] + " ");
}
Console.WriteLine("\n 当前 ArrayList 里的元素个数共有:");
Console.WriteLine(a1.Count);
a1.Insert(, "aaa"); //在ArrayList 索引值为1处添加字符串aaa
for (int i = ; i < ; i++)
{
Console.Write(a1[i] + " ");
}
Console.WriteLine("\n 倒序后当前ArrayList 里的全部元素如下:");
a1.Reverse();
for (int i = ; i < ; i++)
{
Console.Write(a1[i] + " ");
}
Console.WriteLine("\n 删除后当前ArrayList 里的全部元素如下:");
a1.RemoveAt();
for (int i = ; i < ; i++)
{
Console.Write(a1[i] + " ");
}
Console.ReadKey();

2017-11-04   11:52:19

2017-11-06   11:39:26

数组去重

 int[] x = new int[] { , , , , , , , , , , , , , , , , , , , , ,  };

             int[] i = x.Distinct().ToArray();

             //for (int k = i.Length - 1; k >= 0; k--)
//{
// Console.WriteLine(i[k]);
//}
foreach (int j in i)
{
Console.WriteLine(j);
} Console.ReadLine();

注释掉的是另外一种方式,不过个人喜欢遍历的方式输出,理解起来简单

2017-11-06  11:41:26

C#数组 修改的更多相关文章

  1. MongoDB数组修改器更新数据(转)

    MongoDB数组修改器更新数据    这里,我们将了解一下数组修改器.数组,是我们经常看到和使用到的且非常有用的数据结构:它不仅可以通过索进行引用,还可以作为集合来使用.数组修改器,顾名思义,它是用 ...

  2. 076-PHP数组修改元素值

    <?php $arr=array(98,'hello',67,'A',85,NULL); //定义一个数组 echo '输出数组修改元素之前的详细信息:<br />'; print_ ...

  3. 解决uni-app props 传递数组修改后不能使用问题

    1.子组件页面结构 //NoticesMarquee 组件 <view v-for="(item, index) in tempList" :key="index& ...

  4. mongo数组修改器—$push、$ne、$addtoset、$pop、$pull

    这几个方法也很有意思 $push 像已有的数组末尾加入一个元素,要是元素不存在,就会创建一个新的元素,如果元素存在了,就会再添加一个一模一样的元素,会造成元素的重复,所以在使用的时候,要确保该元素不存 ...

  5. php二维数组修改键名

    最近遇到一个问题,是关于json数据提交的时候,总是报出[object object]的错误,查了晚上需要资料,大部分的说法是json数据格式不规范导致的错误.一般建议说将dataType类型注释掉. ...

  6. BZOJ 3110([Zjoi2013]K大数查询-区间第k大[段修改,在线]-树状数组套函数式线段树)

    3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec   Memory Limit: 512 MB Submit: 418   Solved: 235 [ Submit][ ...

  7. MongoDB .Net Driver(C#驱动) - 内嵌数组/嵌入文档的操作(增加、删除、修改、查询(Linq 分页))

    目录 一.前言 1. 运行环境 二.前期准备工作 1. 创建 MongoDBContext MongoDb操作上下文类 2.创建测试类 3.创建测试代码 三.内嵌数组增加元素操作 1.Update.S ...

  8. vue数组对象修改触发视图更新

    直接修改数组元素是无法触发视图更新的,如 this.array[0] = { name: 'meng', age: 22 } 修改array的length也无法触发视图更新,如 this.array. ...

  9. 树状数组求区间和模板 区间可修改 参考题目:牛客小白月赛 I 区间

    从前有个东西叫树状数组,它可以轻易实现一些简单的序列操作,比如单点修改,区间求和;区间修改,单点求值等. 但是我们经常需要更高级的操作,比如区间修改区间查询.这时候树状数组就不起作用了,只能选择写一个 ...

随机推荐

  1. linux中ftp提示--553 Could not create file

    今天在阿里云的linux上搭建ftp服务的时候,搭建成功之后,上传文件时总提示553 Could not create file,找了半天原因,终于解决了 ftp主目录为/home/myftp /ho ...

  2. MySQL 索引的介绍与应用

    Mysql索引 一. mysql 索引 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 二:MySQL索引类型 按存储结构区分:聚集索引(又称聚类索引,簇 ...

  3. 利用xlst导出多表头的简便方法

    大家都知道在ASP.NET中进行表格导出有很多种办法,aspose,npoi,cvs等等,今天就来介绍xlst,导出多表头.与以往不一样的是我们利用模板,只需要在模板中定义好表格样式,然后绑定数据就可 ...

  4. apt-spy来获得适合自己的源,适用于UBUNTU/Debian

    使用ubuntu和debian等使用APT源的系统,有些时候是不是会不知道哪里有源,哪里的源比较快让自己的宽带完全利用,我们可以用apt-spy来自动找到 apt-spy -d unstable -a ...

  5. AOP-Advisor-笔记

    一.Advisor接口 这个接口是一个通知者的顶层接口.它实现类持有一个通知(advice)和一个过滤器的引用.用过滤器来决定通知是否合适目标对象. 这个接口只有两个方法,所以将整个代码贴上来. /* ...

  6. Hive学习之路 (十)Hive的高级操作

    一.负责数据类型 1.array 现有数据如下: 1 huangbo guangzhou,xianggang,shenzhen a1:30,a2:20,a3:100 beijing,112233,13 ...

  7. java.lang.NoClassDefFoundError: org/apache/ibatis/mapping/DatabaseIdProvider

    我用的方案是:maven+struts2+spring+mybatis 出现上述错误的原因是: <dependency>            <groupId>org.myb ...

  8. java中的对象和类

    1.类:类是一个模板,它描述一类对象的行为和状态. 一个类可以包含以下类型变量: 局部变量:在方法.构造方法或者语句块中定义的变量被称为局部变量.变量声明和初始化都是在方法中,方法结束后,变量就会自动 ...

  9. Linux Shell常用技巧(五)

    十一.  awk编程:    1.  变量:    在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可以是数字.字符串.根据使用的不同,未初始化变量的值为0或空白字符串&quo ...

  10. 虹软人脸识别iOS SDK2.0

    最近公司要在APP上添加一个人脸识别功能,在网上搜了一圈,发现虹软的人脸识别SDK挺好用的,而且还免费,所以就下载了他们的SDK研究了一下.总的来看功能挺好用的,只是demo上面部分功能不是很完善,所 ...