今天咱们了解下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. C# Socket编程 笔记,Socket 详解,入门简单

    目录 一,网络基础 二,Socket 对象 三,Bind() 绑定与 Connect() 连接 四,Listen() 监听请求连接 和 Accept() 接收连接请求 五,Receive() 与 Se ...

  2. 一、动态网络编程的概念 二、Tomcat服务器搭建 三、Servlet组件介绍

    一.动态网络编程的概念 动态网页:结合了HTML以外的高级程序编程语言和数据库技术生成的页面. 动态网页编程技术: ASP,PHP,JSP HTTP协议:规范浏览器和服务器之间通信的数据格式. 浏览器 ...

  3. 【Alpha】Daily Scrum Meeting

    一 博客集合贴 11月15日 [Alpha]Daily Scrum Meeting——blog1 11月18日 [Alpha]Daily Scrum Meeting——blog2 11月19日 [Al ...

  4. memcache分布式 存取

    Memcached分布式 Memcached虽然称为“分布式“缓存服务器,但服务器端并没有“分布式”的功能.Memcached的分布式完全是由客户端实现的.memcached是怎么实现分布式缓存的呢? ...

  5. 【转载】Spring最佳后台框架

    https://www.quora.com/What-is-the-best-backend-arquitecture-using-spring-framework The most modern a ...

  6. Java设计模式16:常用设计模式之观察者模式(行为型模式)

    1. Java之观察者模式(Observer Pattern) (1)概述: 生活中我们在使用新闻app,当我们对某一栏比较感兴趣,我们往往会订阅这栏新闻,比如我对军事栏感兴趣,我就会订阅军事栏的新闻 ...

  7. 基于反射启动Spring容器

    基于反射启动Spring容器 package com.maple.test; import org.springframework.context.ApplicationContext; import ...

  8. 《网络安全编程基础》之Socket编程

    <网络安全编程基础>之Socket编程 我的代码 server.c // server.cpp : Defines the entry point for the console appl ...

  9. SQLserver中取众位数的写法

    取众位数:先按个数倒排序,再取第一条SELECT * FROM ( select a.billid,a.DemandVoltage,count(1) as RecordCount, Row_NUMBE ...

  10. 2018年秋季学期《C语言程序设计I》教学过程及学期总结

    一学期下来,问题很多,思考也很多,需要整理.总结,好的经验要形成规律,不好的地方要提示警醒. 教学过程小结: C语言程序设计I-第一周教学 C语言程序设计I-第三周教学 C语言程序设计I-第四周教学 ...