C#_数组

时间:2021-07-12 12:21:01


数组是相同数据类型的元素按一定顺序排列的集合,然后用一个变量名进行命名。新建控制台程序,声明一个静态方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace DemoArray_1
{
class Program
{
static void Main(string[] args)
{
ArraysDemo();
Console.ReadLine();
}
static void ArraysDemo()
{
//定义数组变量
int[] myInts = new int[4];
string[] booksOnDotNet = new string[100];
//使用索引来填充数组
myInts[0] = 110;
myInts[1] = 120;
myInts[2] = 114;
myInts[3] = 119; foreach (int i in myInts)
Console.WriteLine(i);
Console.WriteLine();
}
}
}

上面代码是使用构造函数来声明数组的,在声明的时候,并没有显式的填充数组值,此时数组中的每一项都会被设置成数据类型的默认值,比如Int类型的数组项默认值会被设置成0,bool类型数组则被设置成false

数组初始化

static void ArrayInit()
{
//使用new关键字来创建数组,未指定大小
string[] ColorsArray = new string[] { "red", "green", "blue", "black" };
Console.WriteLine("ColorsArray has {0} elemnets", ColorsArray.Length);
//不使用new关键字,使用字面值初始化数组
int[] VarArray = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine("VarArray has {0} elements ", VarArray.Length);
//使用new关键并指定大小,创建数组
char[] CharArray = new char[3] { 'a', 'b', 'c' };
Console.WriteLine("CharArray has {0}", CharArray.Length); }

在用花括号创建数组时,不需要指定数组的大小,由花括号中的元素个数自动确定数组大小,另外new关键字也是可选的

定义隐式类型本地数组

static void DefinedImplicitArray()
{
//使用var关键字来定义隐式类型本地数组,注意数组元素必须是同一类型
var myInt=new[] {110,120,114,119};
Console.WriteLine("myInt is {0}", myInt.ToString()); }
需要注意是数组元素的类型必须是同一类型
定义Object数组
我们知道在.Net中所有内置类型的父类型都是System.Object类型,如果定义一个Object类型的数组,会发生什么?

static void ObjcetsArray()
{
object[] myObjects = new object[3];
myObjects[0] = 1; //int类型
myObjects[1] = "this is a demo"; //string类型
myObjects[2] = true; //boolean类型
foreach (object i in myObjects)
Console.WriteLine("Type is {0},Value is {1}", i.GetType(), i);
}
输出如下:

C#_数组

从输出可以看出,使用object创建数组时,元素可以是任何类型,因为所有内置类型最终都会被转化成Object类型

定义矩形数组

除一维数组外,C#还支持两种多维数组:①矩形数组;②交错数组

矩形数组:每行长度相同,如下面的二维数组

static void RectArray()
{
int[,] MatrixArray;
MatrixArray=new int[10,10];
//填充数组
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
MatrixArray[i, j] = i + j; //输出数组
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
Console.Write(MatrixArray[i, j] + "\t");
Console.WriteLine(); }
在上面的代码中使用"\t" 用于插入一个水平制表符,并且使用Write输出,以获得6x6的矩形输出效果
定义交错数组
交错数组也就是数组中数组

 static void CrossArray()
{
//声明一个具有3个不同数组的数组
int[][] myCrossArray = new int[3][];
Console.WriteLine(myCrossArray.Length); //获取的数组大小是3,即上面代码是声明三个数组
//创建交错的数组
for (int i = 0; i < myCrossArray.Length; i++)
myCrossArray[i] = new int[i + 7]; //第一个数组元素有7个,第二个数组元素8,依次类推
//输出数组
for(int i=0;i<3;i++)
{
for(int j=0;j<myCrossArray[i].Length;j++)
Console.Write(myCrossArray[i][j]+"\t");
Console.WriteLine();
}
}
上面代码没有给交错数组 填充值,所以所有数组元素的默认值都为0,下图是上面两种数组运行结果
C#_数组

用数组传参

 //向方法中传入数组
static void PrintArray(int[] ints)
{
for (int i = 0; i < ints.Length; i++)
Console.WriteLine("{0}的索引是{1}", ints[i], i);
}
//从方法获取string类型的数组
static string[] GetValueArray()
{
string[] varString = { "one", "two", "three" };
return varString;
}
在Main()方法中,进行调用
//调用PrintArray方法
int[] tels = { 110, 120, 114, 119 };
PrintArray(tels);
//调用GetValueArray,会获得一个数组
string[] strs = GetValueArray();
foreach (string s in strs)
Console.WriteLine(s);

System.Array功能演示

每一个被创建的数组都继承自Array基类。Array基类有很多常用功能,特别是静态成员,可以在类级别进行调用。

下表是Array的常用成员

 static void SystemArray()
{
string[] strs = { "China" };
//利用Length属性,输出数组元素
for(int i=0;i<strs.Length;i++)
{
Console.Write(strs[i] + "\t");
}
//利用Reverse()方法反转数组
Array.Reverse(strs);
for (int i = 0; i < strs.Length; i++)
{
Console.Write(strs[i] + "\t");
} //待续
}

C#_数组的更多相关文章

  1. 选择排序&lowbar;C语言&lowbar;数组

    选择排序_C语言_数组 #include <stdio.h> void select_sort(int *); int main(int argc, const char * argv[] ...

  2. 插入排序&lowbar;C语言&lowbar;数组

    插入排序_C语言_数组 #include <stdio.h> void insertSort(int *); int main(int argc, const char * argv[]) ...

  3. 快速排序&lowbar;C语言&lowbar;数组

    快速排序_C语言_数组 #include <stdio.h> void quickSort(int *, int, int); int searchPos(int *, int, int) ...

  4. 冒泡排序&lowbar;C语言&lowbar;数组

    冒泡排序_C语言_数组 #include <stdio.h> //冒泡排序 小->大 void sort(int * pArray, int len); int main(int a ...

  5. Net基础篇&lowbar;学习笔记&lowbar;第九天&lowbar;数组&lowbar;冒泡排序(面试常见题目)

    冒泡排序: 将一个数组中的元素按照从大到小或从小到大的顺序进行排列. for循环的嵌套---专项课题 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 ...

  6. Net基础篇&lowbar;学习笔记&lowbar;第九天&lowbar;数组&lowbar;三个练习

    练习一: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  7. Net基础篇&lowbar;学习笔记&lowbar;第九天&lowbar;数组

    结构:一次性存储不同类型的变量: 数组:一次性存储相同类型的变量: 数组的语法: 数组类型[ ] 数组名=new 数组类型[数组长度]: int[ ] nums=new int[10]; 数组初值都是 ...

  8. C&plus;&plus;&lowbar;系列自学课程&lowbar;第&lowbar;7&lowbar;课&lowbar;数组&lowbar;《C&plus;&plus; Primer 第四版》

    说到数组,大家应该都很熟悉,在C.Pascal.Java等语言中,都有数组的概念.在C++中也提供了对数组的支持.数组简单来说就是一堆相同 数据类型对象的集合. 这里要把握住两个要点: 相同的数据类型 ...

  9. 大数计算&lowbar;BigNum优化&lowbar;加减乘除乘方取余&lowbar;带注释&lowbar;数组

    #include <iostream> #include <algorithm> #include <cstring> #include <cstdlib&g ...

  10. Excel 信息对比&lowbar;数组版

    Sub LOOKUP_UChur() Dim i As Long '=== sourceWorksheet = 数据源表名称 Dim sourceWorksheet As Worksheet Dim ...

随机推荐

  1. 网站中使用中文个性字库字体--&commat;font-face解决方案探索 l(转)

    最近的项目有用到特别中文字体,最终效果如下图: 红线标记处均为字体,可选中,交互起来,比图片方便太多了. 解决思路就是将体积巨大的中文字库,取子集,只包涵要使用的那部分文字,因此体积就很小了(包含10 ...

  2. SAS零散知识总结

    1,变量名命名规范:以字母或者下划线开始,可包含字母.下划线.数字,且不超过32个字符: 2,INFILE用于读取外部数据文件,一般于FILENAME(和LIBNAME用户一致,但路径要精确到文件名( ...

  3. asp&period;net常用字符串函数

    /// <summary> /// 提取字符串中的数字 /// </summary> /// <param name="str"></pa ...

  4. windows下如何安装配置mysql-5&period;7-m14-winx64(zip格式的安装)

    win7 64位下如何安装配置mysql-5.7.4-m14-winx64 1.   mysql-5.7.4-m14-winx64.zip下载 官方网站下载地址:http://dev.mysql.co ...

  5. Kickstart 自动化安装配置

    自动化安装案例: 一 ,系统环境 # cat /etc/redhat-release CentOS release 6.6 (Final) #Hostname [root@boot ~]# hostn ...

  6. 初识Selenium(三)

    浅谈基于Selenium的Web自动化测试框架 发表于:2011-4-25 10:58  作者:邵育亮   来源:51Testing软件测试网原创 字体:大 中 小 | 上一篇 | 下一篇 | 打印 ...

  7. 《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程

    18.1 创建文本菜单 直接上例子吧:   1 #!/bin/bash   2 function menu   3 {   4         clear   5         echo   6   ...

  8. Git 初体验

    第一次接触git的时候,一直在纳闷git和github的区别,解释下,git是版本管理工具,github是开源共享平台,个人这么理解,理解这么多就行了 先说git吧,下载git客户端,地址:http: ...

  9. 深入理解Java虚拟机8-chap12-13-斗者5星

    一.操作系统与内存 通过在处理器与内存之间添加一层访问及更新速度更快的高速缓存,可以一定程度解决处理器与内存速度的矛盾 引入新问题:缓存一致性,即每个处理器只与自己的缓存交互,如果操作的是内存中的同一 ...

  10. JEECG 开源平台全视频和文档

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26488439 jeecg v3.0入门 ...