今天咱们了解下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. PHP防SQL注入和XSS攻击

    摘要: 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL ...

  2. 利用Gson将JSON数据进行格式化(pretty print)

    我们可以利用Gson包将String类型的JSON数据进行格式化. Gson gson = new GsonBuilder().setPrettyPrinting().create(); JsonPa ...

  3. 洛谷 P1251 餐巾计划问题(线性规划网络优化)【费用流】

    (题外话:心塞...大部分时间都在debug,拆点忘记加N,总边数算错,数据类型标错,字母写错......) 题目链接:https://www.luogu.org/problemnew/show/P1 ...

  4. tomcat 开启远程debug

    修改 tomcat  目录下  /bin/catelina.sh #                   execution immediately after startup. Default is ...

  5. CPU中MMU的作用

    http://blog.csdn.net/jjw97_5/article/details/39340261 MMU是个硬件,每当cpu访问一个地址的时候,MMU从内存里面查table,把cpu想访问的 ...

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

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

  7. virtualbox+vagrant学习-2(command cli)-23-vagrant version命令

    Version 格式: vagrant version options只有 -h, --help 该命令将告诉你已安装的vagrant版本以及当前可用的vagrant最新版本. userdeMacBo ...

  8. c++——静态成员变量成员函数

    静态成员变量成员函数 思考:每个变量,拥有属性.有没有一些属性,归所有对象拥有? 4.1静态成员变量 1)定义静态成员变量 关键字 static 可以用于说明一个类的成员, 静态成员提供了一个同类对象 ...

  9. ddt 数据处理调用excel数据建模

    1.数据模型: 2.数据处理 最终返回数据:[(),()] 格式 ddt调用: import ddtimport unittest @ddt.ddtclass Test(unittest.TestCa ...

  10. Python学习笔记系列——九九乘法表&猜大小

    再重新捡起Python,数据库短时间之内已经没啥看的了,不知道今年结束之前能不能Python入门,一直认为自己是没有编程思想的... 1.九九乘法表 #九九乘法表实现的一种方式之一 def Multi ...