一、二维数组
int [,] array = new int[5,3];//有五个一维数组,每一个一维数组有3个元素

/打印出来一个“王”这个字string[,] wang = new string[,]{

 {" ","■","■","■","■","■"," "},
 {" "," "," ","■"," "," "," "},
 {" "," "," ","■"," "," "," "},
 {" "," ","■","■","■"," "," "},
 {" "," "," ","■"," "," "," "},
 {" "," "," ","■"," "," "," "},
 {"■","■","■","■","■","■","■"}
};
for (int i = 0; i < 7; i++)
{
 for (int j = 0; j < 7; j++)
{
 Console.Write(wang[i,j]);
 }
Console.WriteLine();
}

输入班级人数,输入每个人的语数英成绩,求语文的总分,数学的平均分,英语的最高分和最低分

Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
double sum1= ;
double sum2 = ;
double[,] a = new double[n, ];
for (int i = ; i < n; i++)
{
Console.Write("请输入第"+(i+)+"个人的语文成绩:");
a[i, ] = double.Parse(Console.ReadLine());
sum1 +=a[i,];
Console.Write("请输入第" + (i + ) + "个人的数学成绩:");
a[i, ] = double.Parse(Console.ReadLine());
sum2 += a[i, ];
Console.Write("请输入第" + (i + ) + "个人的英语成绩:");
a[i, ] = double.Parse(Console.ReadLine());
}
for (int i = ; i < n;i++ )
{
for (int j = i; j < n-;j++ )
{
if (a[i,]<a[j+,]) {
double zhong=a[i,];
a[i, ] = a[j + , ];
a[j + , ] = zhong; }
}
}
Console.WriteLine("语文总分为"+sum1+"分");
Console.WriteLine("数学平均分为"+sum2/n+"分");
Console.WriteLine("英语最高分为"+a[,]);
Console.WriteLine("英语最低分为"+a[n-,]);
Console.ReadLine();

二、多维数组
int[, ,] shuzu = new int[4, 3, 2];//有四个二维数组,每个二维数组里面有3个1维数组,每个1维数组里面有2个元素
string[, ,] gao = new string[3, 4, 1]

 {
{
 {"张三"},{"李四"},{"王五"},{"赵六"}
},
 {
 {"冯七"},{"王八"},{"张全蛋"},{"小沈阳"}
 },
 {
 {"刘能"},{"赵四"},{"赵本山"},{"岳云鹏"}
}
};

split 分离

一次性接收姓名、年龄、工作单位
Console.Write("请输入您的姓名、年龄、工作单位(**-**-**):");
string quan = Console.ReadLine();
string[] array = quan.Split('-');
for (int i = 0; i < array.Length; i++)
{
 Console.WriteLine(array[i]);
}
Console.ReadLine();

三、ArrayList集合

集合不同于数组,是一组可变数量的元素的组合,这些元素可能共享某些特征,需要以某种操作方式一起进行操作。一般来说,这些元素的类型是相同的。

集合与数组的区别:数组是连续的、同一类型数据的一块区域,而集合可以是不连续的、多种数据类型的。

ArrayList实现了IList、ICollection、IEnumerable接口;

ArrayList与Array的不同

(1)ArrayList是集合,而Array是数组;

(2)ArrayList是具体类,Array是抽象类;

(3)获取数组的元素数时使用Length属性,而获取ArrayList集合的元素数时使用Count属性;

(4)数组可以有多维,而ArrayList只能是一维。

ArrayList al = new ArrayList();//初始化
al.Add(5);
al.Add(3);
al.Add(6);
al.Add(4);
al.Add(1);
al.Add(2);
al.Add("2");
al.Add("hello");
al.Add(true);
al[3] = "你好";
al.Clear(); //移除所有元素
ArrayList al1 = new ArrayList();
al1 = (ArrayList)al.Clone();//克隆
Console.WriteLine(al1.Contains("2"));//判断是否包含
Console.WriteLine(al1.IndexOf(11));//获取第一次出现该元素的索引号
Console.WriteLine(al1.LastIndexOf(2));//获取最后一次出现该元素的索引号
al.Insert(2,"Hello");//插入某个索引位置某个元素

al.Remove("hello");//移除某个第一次出现的元素

al.RemoveAt(3);//移除某个索引位置的元素

al.Sort();//排序 ,升序
al.Reverse();//翻转整个集合
Console.WriteLine(al[2]);
Console.WriteLine(al.Count);
Console.ReadLine();

练习

//输入班级人数,输入每个人的姓名、语数英成绩进入集合
//求语文的总分,数学的平均分,
//英语的最高分的人的姓名及所有科目的分数(冒泡排序)

//0 姓名 4 8 12
//1 语文成绩5 9 13
//2 数学成绩6 10 14
//3 英语成绩7 11 15
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
double yu = ;
double shu = ;
ArrayList al = new ArrayList();
for (int i = ; i < n; i++)
{
Console.Write("请输入第{0}个人的姓名:",i+);
al.Add(Console.ReadLine());
Console.Write("请输入第{0}个人的语文成绩:",i+);
al.Add(double.Parse(Console.ReadLine()));
yu += double.Parse(al[al.Count - ].ToString());
Console.Write("请输入第{0}个人的数学成绩:", i + );
al.Add(double.Parse(Console.ReadLine()));
shu += double.Parse(al[al.Count - ].ToString());
Console.Write("请输入第{0}个人的英语成绩:", i + );
al.Add(double.Parse(Console.ReadLine()));
}
Console.WriteLine("所有信息输入完毕,请按回车键继续!");
Console.ReadLine();
Console.WriteLine("语文的总分是:"+yu);
Console.WriteLine("数学的平均分是:"+(shu/n)); for (int i = ; i < *n-; i+=)
{
for (int j = i; j < * n - ; j += )
{
if (double.Parse(al[i].ToString()) < double.Parse(al[j + ].ToString()))
{
//换姓名
object zhong = al[i - ];
al[i - ] = al[j + ];
al[j + ] = zhong;
//换语文
zhong = al[i - ];
al[i - ] = al[j + ];
al[j + ] = zhong;
//换数学
zhong = al[i - ];
al[i - ] = al[j + ];
al[j + ] = zhong;
//换英语
zhong = al[i];
al[i] = al[j + ];
al[j + ] = zhong;
}
}
}
Console.WriteLine("英语最高分的学生是{0},英语分数是{1},语文分数是{2},数学分数{3}",al[],al[],al[],al[]);
Console.ReadLine(); 

集合不同于数组,是一组可变数量的元素的组合,这些元素可能共享某些特征,需要以某种操作方式一起进行操作。一般来说,这些元素的类型是相同的。

集合与数组的区别:数组是连续的、同一类型数据的一块区域,而集合可以是不连续的、多种数据类型的。

C#(二维数组/集合)的更多相关文章

  1. C# 二维数组和集合

    本次课我主要学习了二维数组和集合的部分内容. 在二维数组的部分中,我主要学习了二维数组的定义方法:int [,] array=new int [4,2];做了一个小练习:用二维数组打印自己的姓氏. s ...

  2. PHP 如何获取二维数组中某个key的集合(高性能查找)

    分享下PHP 获取二维数组中某个key的集合的方法. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码: $user = array( 0 => array( 'id' => 1 ...

  3. PHP 获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享. 具体是这样的,如下一个二维数组,是从库中读取出来的. 代码清单: $user = array( 0 => array( 'id'  ...

  4. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)

    二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...

  5. PHP使用array_filter查找二维数组中符合字段和字段值的数据集合

    1.方法: /** * 获取符合字段和字段值的数组集合 * @param array $data 待过滤数组 * @param string $field 要查找的字段 * @param $value ...

  6. php获取二维数组中某一列的值集合

    $result //二维数组$uid_list = array_column($result, 'uid');

  7. ***php解析JSON二维数组字符串(json_decode函数第二个参数True和False的区别)

    客户端的请求体中的数据:[{"msg_id": 1, "msg_status": "HAS_READ" }, { "msg_id& ...

  8. Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组

    经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义. 其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是 ...

  9. 数组(Array),二维数组,三维数组

    数组(Array):相同类型数据的集合就叫做数组. (一)定义数组的方法: A) type[] 变量名 = new type[数组中元素的个数] 例如: int[] a = new int[10] ; ...

随机推荐

  1. PHP的一些要点

    1.用户评论的内容应当使用htmlspecialchars()函数进行过滤,如htmlspecialchars($_POST['content']);再写入数据库,防止用户评论中含有JS和HTML代码 ...

  2. OpenJudge计算概论-比饭量【枚举法、信息数字化】

    /*====================================================================== 比饭量 总时间限制: 1000ms 内存限制: 655 ...

  3. messagepcak 资料

    1,今天在hacknews上看到很多人对messagepack的争论.首先了解什么是MessagePack:MessagePack is a binary-based efficient object ...

  4. Bootstrap 3兼容IE8浏览器(转)

    Bootstrap是一个响应式的布局,你可以在宽屏电脑.普通电脑,平板电脑,手机上都得到非常优秀的布局体验.这种响应式的布局正是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分 ...

  5. 使用bind(this)的情况

    1.setInterval().setTimeout()的回调函数,一定要加.bind(this)方法. 原因是:在setInterval()中定义的回调函数,是在同步代码执行完后,随着事件触发来异步 ...

  6. Presto 来自Facebook的开源分布式查询引擎

    Presto是一个分布式SQL查询引擎, 它被设计为用来专门进行高速.实时的数据分析.它支持标准的ANSI SQL,包括复杂查询.聚合(aggregation).连接(join)和窗口函数(windo ...

  7. RMAN备份与恢复之数据文件

    备份数据文件,模拟磁盘损坏时,还原恢复数据文件. 首先,查询数据文件序号,备份数据文件,可根据数据文件序号指定备份的数据文件. SQL SQL> select file_name,file_id ...

  8. Kafka 安装和测试

    转载自:http://czj4451.iteye.com/blog/2041096 1. 简介 kafka (官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统 ...

  9. 转:在ElasticSearch之下(图解搜索的故事)

    ElasticSearch 2 (9) - 在ElasticSearch之下(图解搜索的故事) 摘要 先自上而下,后自底向上的介绍ElasticSearch的底层工作原理,试图回答以下问题: 为什么我 ...

  10. java将office文档pdf文档转换成swf文件在线预览

    第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...