今天咱们了解下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. jQuery插件实例三:图片滚动[切换]效果一

    图片切换效果在很多网站上都能看到,是一种常见的广告/活动宣传方式,通常位于网页上端.这个插件是众多图片切换效果的形式中的一种,数据源可在前端配置,也可从后台通JSON格式传输数据,当然,数据格式是固定 ...

  2. Chrome新发现

    昨晚写代码的时候惊喜的发现Chrome中能直接使用一些ES6的语法: let, const, 箭头函数等已经能直接使用. 酷酷的. 另外我的Chrome版本还是比较旧的,并不需要最新版本.

  3. 走向Node与Webpack 之路 - CommonJS 模块化

    走向Node与Webpack 之路 - CommonJS 模块化 1. 参考资料 JavaScript 标准参考教程(alpha) CommonJS规范(推荐 - 阮一峰写的) 官方网站 (看半天,不 ...

  4. Spring-IOC MethodInvokingFactoryBean 类源码解析

    MethodInvokingFactoryBean MethodInvokingFactoryBean的作用是,通过定义类和它的方法,然后生成的bean是这个方法的返回值,即可以注入方法返回值. Me ...

  5. 【转】[置顶] 在Android中显示GIF动画

    gif图动画在Android中还是比较常用的,比如像新浪微博中,有很多gif图片,而且展示非常好,所以我也想弄一个.经过我多方的搜索资料和整理,终于弄出来了,其实github上有很多开源的gif的展示 ...

  6. 动态验证码处理UI自动化获取处理

    解决思路两种:1.直接linux catalina.out读取:一分每10s轮询出现新的直接读取返回<br>2.缓存注入cookie,先手动登录获取session 然后通过注入user,p ...

  7. 郑重推荐开源CANopen协议栈CANFestival(LGPL许可)!!!!!!!!

    郑重推荐开源CANopen协议栈CANFestival(LGPL许可)!!!!!!!!(这条文章已经被阅读了 次) 时间:2010/03/04 06:47am 来源:winshton [这个贴子最后由 ...

  8. C#中的结构体与类的区别 (转载)

    经常听到有朋友在讨论C#中的结构与类有什么区别.正好这几日闲来无事,自己总结一下,希望大家指点. 1. 首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字str ...

  9. C++标准转换运算符dynamic_cast

    dynamic_cast <new_type> (expression) dynamic_cast运算符,应该算是四个里面最特殊的一个,因为它涉及到编译器的属性设置,而且牵扯到的面向对象的 ...

  10. 用NDK生成so给第三方用

    参考了https://blog.csdn.net/zi413293813/article/details/50074239 然后自己重新整理补充 我用的ndk-r10d ndk下载地址http://d ...