• 数组
    • 声明数组

       .一维数组的定义:
      数据类型[] 数组名=new 数据类型[大小];
      eg:
      int[] num=new int[];
      int[] num={,,,,};
      string[] str=new string[];
      .多维数组的定义
      int[,] num=new int[,];//定义二维数组
      int[,,] num=new int[,,];//定义三维数组
      多维数组可以理解为每个元素自身是一个数组的一维数组,这种情况下数组又称为交错数组,交错数组的声明:
      int[][] jaggedArray=new int[][];
    • 初始化数组
       //一位数值数组
      int[] n1=new int[] {,,,};
      int[] n2=new int[]{,,,};
      int[] n3={,,,};
      //一维字符数组
      string[] s1=new string[]{"john","Paul","Mary"};
      string[] s2=new string[]{"john","Paul","Mary"};
      string[] s3={"john","Paul","Mary"}; //多维数组
      int[,] n4=new int[,] {{,},{,},{,}};
      int[,] n5=new int[,] {{,},{,},{,}};
      int[,] n6={{,},{,},{,}}; //交错数组
      int[][] n7=new int[][]{new int[]{,,},new int[]{,,,,}};
      int[][] n8=new int[][]{new int[]{,,},new int[]{,,,,}};
      int[][]n9={new int[]{,,},new int[]{,,,,}};
    • 访问单独的数组元素:数组可以通过索引来访问其中的数据,数组的索引是从0开始,也就是第一个元素对应的索引值为0,后面的逐个递增,访问的方式如下:数组名[索引值];
       //一维数值数组
      int[] n1=new int[]{,,,};
      int a=n1[];//第一个元素 //多维数组
      int[,] n4=int new[,] {{,},{,},{,}};
      int e=n4[,];//第1行1列元素 //交错数组
      int[][] n7=new int[][]{new int[]{,,},new int[]{,,,,}};
      int g=n7[][];//第2行3列元素
    • 遍历数组
       ()可以使用foreach语句遍历数组
      //一维数值数组
      int[] n1=new int[]{,,,};
      foreach(int i in n1)
      {
      System.Console.Write("{0}",i);
      }
      //二维数组
      int[,]n4=new int[,]{{,},{,},{,}};
      foreach(int i in n4)
      {
      System.Console.Write("{0}",i);
      }
      Console.WriteLine(" ");
      ()使用for循环遍历数组
      //一维数值数组
      int[] n1=new int[]{,,,};
      for(int i=;i<n1.Length;i++)
      {
      Console.WriteLine(n1[i]);
      }
      //二维数组
      for(int i=;i<n4.GetLength();i++)//遍历行
      {
      for(int j=;j<n4.GetLength();j++)//遍历列
      {
      Console.Write(n4[i,j]);
      Console.Write(" ");
      }
      }
      Console.WriteLine(" ");
      ()使用Ienumerator接口遍历数组
      //一位数值数组
      int[] n1=new int[]{,,,};
      Ienumberator eed=n1.GetEnmerator();
      while(eed.MoveNext())
      {
      Console.WriteLine(eed.Current.ToString());
      }
      //二维数组
      Ienumberator eed=n4.GetEnumberator();
      while(eed.MoveNext())
      {
      Console.Write(eed.Current.ToString());
      Console.Write(" ");
      }
    • Array类:在C#中,声明的数组在后台会被创建上一个派生子抽象类Array的新类,这样数组就可以使用Array类为每个C#数组定义的方法和属性。
  • 集合:集合如同,用来存储和管理一组特定类型的数据结构对象,不过,与数组不同的是,集合除了基本的数据处理功能外,还提供了各种数据结构及算法的实现,如队列,链表,排序等。在C#中集合类是命名空间System.Collections或System.Collection.Generic的一部分,而且需要实现一个或多个Icollection、Icomparer、Ienumerable、Ilist、IdictionaryEnumerator接口以及它们的等效泛型接口。
    • 命名空间System.Collections中的集合可以分为如下3种:
      1. 常用集合:数据集合的常见变体,如哈希表,队列,堆栈,字典和列表。常用集合有泛型和非泛型之分。
        1. 有序集合
        2. 索引集合
        3. 键式集合
      2. 位集合:这些集合中的元素均为位标识。它们的行为与其他集合稍有不同。
      3. 专用集合:这些集合都具有专门的用途,通常用于处理特定的元素类型,如StringDictionary.
    • ArrayList集合类:用于实现可以动态的添加元素的数据链表,也就是其大小可以按需进行动态的增加。
    • Queue集合类:表队列
    • Stack集合类:表堆栈
    • Hashtable集合类:表示键/值(key/value)对的集合,这些键/值对根据键的哈希代码进行组织。Key区分大小写

c#学习笔记05——数组&集合的更多相关文章

  1. 学习笔记 07 --- JUC集合

    学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. Lis ...

  2. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  3. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  4. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  5. C++ GUI Qt4学习笔记05

    C++ GUI Qt4学习笔记05   qtc++正则表达式 QIntValidator           --  只让用户输入整数 QDoubleValidator     --  只让用户输入浮 ...

  6. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  7. go 学习笔记之数组还是切片都没什么不一样

    上篇文章中详细介绍了 Go 的基础语言,指出了 Go 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍加记忆就能轻松从已有的编程语言切换到 Go 语言的编程习惯中,尽管这种切换可能并不是特 ...

  8. JavaScript学习笔记:数组reduce()和reduceRight()方法

    很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...

  9. [Golang学习笔记] 07 数组和切片

    01-06回顾: Go语言开发环境配置, 常用源码文件写法, 程序实体(尤其是变量)及其相关各种概念和编程技巧: 类型推断,变量重声明,可重名变量,类型推断,类型转换,别名类型和潜在类型 数组: 数组 ...

随机推荐

  1. HDU_4965 Fast Matrix Calculation 2014多校9 矩阵快速幂+机智的矩阵结合律

    一开始看这个题目以为是个裸的矩阵快速幂的题目, 后来发现会超时,超就超在  M = C^(N*N). 这个操作,而C本身是个N*N的矩阵,N最大为1000. 但是这里有个巧妙的地方就是 C的来源其实 ...

  2. SPOJ DQUERY D-query 离线+树状数组

    本来是想找个主席树的题目来练一下的,这个题目虽说可以用主席树做,但是用这个方法感觉更加叼炸天 第一次做这种离线方法,所谓离线,就在把所有询问先存贮起来,预处理之后再一个一个操作 像这个题目,每个操作要 ...

  3. HDU - 2819 Swap(二分匹配)

    题意:交换任意两行或两列,使主对角线全为1. 分析: 1.主对角线都为1,可知最终,第一行与第一列匹配,第二行与第二列匹配,……. 2.根据初始给定的矩阵,若Aij = 1,则说明第i行与第j列匹配, ...

  4. js库链接

    1.autoHeightTextarea自适应高度的textarea是一款jquery插件,支持链式调用,支持设置最小行数.最小高度.最大行数和最大高度,在输入文字的时候实现textarea的高度自适 ...

  5. Spring注解——@Transactional

    @Transactional    用于service实现类,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务.(未完待续)

  6. UITextFeild的基本属性

    textField 基本属性   _textField.frame = CGRectMake(0, 0, 200, 50); _textField.delegate = self; _textFiel ...

  7. 寒假day20

    今天解决了部分信息爬取不下来的问题

  8. 201771010123汪慧和《面向对象程序设计Java》第十六周实验总结

    一.理论部分 1.程序与进程的概念 ‐程序是一段静态的代码,它是应用程序执行的蓝本. ‐进程是程序的一次动态执行,它对应了从代码加载.执行至执行完毕的一个完整过程. ‐操作系统为每个进程分配一段独立的 ...

  9. POJ 1017:Packets

    Packets Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 47513   Accepted: 16099 Descrip ...

  10. C++ 一个exe的两个运行实例之间共享数据

    #pragma data_seg("Shared") volatile int iNum = 0; #pragma data_seg() #pragma comment(linke ...