using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;//先引用
namespace ConsoleApplication2集合
{
class Program
{
static void Main(string[] args)
{
////ArrayList集合
////初始化
//ArrayList al = new ArrayList();
//al.Add(1);//添加元素,追加到集合的最后
//al.Add(2);
//al.Add(3);
//al.Add(4);
//Console.WriteLine(al[1]);
//al.Insert(1, 9);//在某个索引号上插入某个值
////在插入了之后,原本在1索引上的值被顶到下一个索引,以此类推
////Console.WriteLine(al[1]);
////al.Remove(4);//这里面放置的是一个值,移除这个值;移除从前往后第一个这个值
//al.RemoveAt(3);//移除3号索引的值
////定义个数
//int geshu = al.Count;
//Console.WriteLine(geshu);
//al.Clear;//清空集合
//al.Contains();//判断集合中是否包含括号内的值
//bool b = al.Contains(3); //bool类型判断,判断是否包含3这个值,定义一个b的变量
//Console.WriteLine(b);//打印b,返回True是包含,False是不包含
//al.Sort();//自动就行排序,升序
//al.Reverse();//将集合翻转,一般进行Sort排序之后翻转,从大到小排序
////克隆一个一模一样的集合
//ArrayList aal = new ArrayList();//要新建一个集合来克隆之前创建好的集合
//aal = (ArrayList)al.Clone;//需要前面加数据类型进行强制转换
////遍历集合
//foreach(object a in al)
//{
// Console.WriteLine(a);
//}
////object类是所有数据类型的基类
//int a = 1;
//object b = a;
//object c = 3;
//string d ="abcd";
//object e = a;//object可赋值任何数据类型
//a = (int)c;//无法将object类型直接转换为int类型,需要显示转换
练习一:
//输入班级人数,输入每个人的分数进入集合,求班级平均分
ArrayList al = new ArrayList();
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
double sum=0;
for (int i = 0; i < n; i++)
{
Console.Write("请输入第"+(i+1)+"个人的分数");
al.Add(double.Parse(Console.ReadLine()));
sum+=double.Parse(al[i].ToString());
}
Console.WriteLine("平均分为"+sum/n);
练习二:
//输入人数,输入每一个人的分数,求平均分,并排序,升序 并打印 降序,打印
ArrayList al = new ArrayList();
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
double sum = 0;
for (int i = 0; i < n; i++)
{
Console.Write("请输入第" + (i + 1) + "个人的分数");
al.Add(double.Parse(Console.ReadLine()));
sum += double.Parse(al[i].ToString());
}
Console.WriteLine("平均分是" + sum / n + "分");
////方法一:
//al.Sort();//使用.Sort进行升序排序,从小到大
//for (int i = 0; i < n; i++) //从第一个同学一次循环打印分数,从0索引开始
//{
// Console.Write(al[i]+" ");
//}
//Console.WriteLine();
//al.Sort();//先排序,再翻转
//al.Reverse();//将已经排序好的集合进行翻转
//for (int i = 0; i < n; i++)
//{
// Console.Write(al[i]+" ");
//}
//方法二:
//使用遍历集合
al.Sort();//首先排序,升序(从小到大)
foreach (object a in al) //使用遍历集合将各个排列元素打印
{
Console.Write(a+" ");
}
Console.WriteLine();
al.Sort();//翻转时需要先进行排序
al.Reverse();//然后将排序好的集合进行翻转
foreach (object b in al)
{
Console.Write(b+" ");
}
Console.ReadLine();
}
}
}