专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » c#数组的属性、foreach遍历、交错数组和矩形数组的区别 »正文

c#数组的属性、foreach遍历、交错数组和矩形数组的区别

来源: 发布时间:星期五, 2009年1月9日 浏览:4次 评论:0
  本次课我们要学习属性、foreach使用方法、我上节课提到交错我会通过多个例子演示讲解让你们理解交错定义已经和规则 2维(矩形)区别加深理解节我们还将学习常用思路方法   下面我们来学习属性,什么是属性呢?在以后学习类时候我会给大家详细讲解现在我给你们举个现实生活例子帮助你们理解什么叫属性属性般都是名词表示它所有者(即对象)拥有特性如抹布(对象)颜色、大小(属性)而下节将学习思路方法般是动词如抹布功能抹布(对象)清除(思路方法)桌面、车辆、地面(这些动作宾语也可以比喻成以后要学习参数)现在你们就记住属性是描述对象特性般是名词思路方法是描述对象功能般是动词有哪些属性呢?

  属性:Array.Length容量

  利用这个属性我们可以取得对象允许存储容量值也就是长度、元素个数,这个比较好理解还有其他属性比如维数等属性使用方法比较简单学会其他格式基本这里我们就不举例了

  在上节最后个例子时我们用到了通过索引(index)得到元素值Array[index]但是当维数、容量较多时采用索引这种思路方法就会繁杂不仅代码量大也会降低编程效率针对这个问题C#提供了foreach语句专门用来读取集合/所有元素我们把这种功能叫做遍历语法书写如下:

  遍历:foreach(type objName in collection/Array)

  这段语句会逐检查所存储变量值并且将其取出其中type是你所要读取对象将要存储在objName变量数据类型而objName是定义了个type类型变量名代表每次从集合和(collection/Array)中取得元素collection/Array则是所要存取对象用这种思路方法只需写个foreach就可以遍历出除交错以外所有维数

  注:objName数据类型type必须和collection/Array对象类型相同或比它大

  下面我们举个用foreach和for遍历规则例子其中涉及到了得到维数思路方法比较foreach在次性遍历规则优势

      [,,] a = [2, 2, 2] { {{ 1, 2 }, { 3,4}},{{ 5, 6 }, { 7,8}} };//定义个2行2列2纵深3维a
      for ( i = 0; i < a.GetLength (0) ;i ) //用Array.GetLength(n)得到[0,1,,,n]上维数元素数0代表行1列n代表此是n+1维
      {
        for ( j = 0; j < a.GetLength(1); j)
        {
          for ( z = 0; z< a.GetLength(2);z )//2代表得到纵深上元素数如果有n维就得写n个for循环
          {
            Console.WriteLine(a[i,j,z]);
          }
        }
      }


  用foreach循环次性遍历a

     [,,] a = [2, 2, 2] { {{ 1, 2 }, { 3,4}},{{ 5, 6 }, { 7,8}} };//定义个2行2列2纵深3维a
           foreach( i in a)
           {
             Console .WriteLine (i);
           }


  这两种代码执行结果是都是 每行个元素共8行元素分别是1 2 3 4 5 6 7 8

  下面我们再做个例子个利用for和foreach循环做存取元素例子首先提示用户输入学生个数然后把学生个数作为存储学生姓名names元素个数采用for循环按照索引i从0位开始循环输出“输入学生姓名”提示并把用户输入学生姓名按照其在索引方式names[i]存储在namesfor循环次数最大值(即索引最大值)通过属性.Length得到上节课我们说过容量和索引的间关系是index=Array.Length-1,本题即i最大值<names.Length,存储后提示“输出学生姓名”再用foreach循环次性遍历names中存储每个元素(学生姓名)把它赋值给name元素然后输出到控制台上



  提问:区别下两张图片发现了什么? 2维第3行第3列我们没有赋值但是会出现————介绍说明它在创建时候给这个位置元素占位了只是根据上节课说原则按照数据类型给了个默认null值当我们用“------”取代时能够显示出来而交错没有创建元素位置时它是不存在

  本节我们主要是学习foreach在两种遍历节我们来学习常用思路方法



相关文章

读者评论

发表评论

  • 昵称:
  • 内容: