第九次
一,数组的引用测试和属性方法
1, 数组的引用测试
int[] ints = new int[] {1,2,3};
int[] ints2 = ints; //赋值关系
ints[0] = 999;
Console.WriteLine(ints2[0]);
Console.WriteLine(ints[0]);
2,方法传递时候对数组引用测试
int[] ints3 = new int[] {1,2,3};
Test1(ints3); //i1 = ints3 赋值过程
Console.WriteLine(ints3[0]); //999
3,数组的属性和方法
string[] namess = {"余1伟","余2伟","余3伟","余4伟"};
string[,] nas = new string[3, 4];//二维数组
Console.WriteLine(namess.Length); //32位数组长度
Console.WriteLine(namess.LongLength); // 64位数字数组长度
Console.WriteLine(namess.Rank); //1维度
Console.WriteLine(nas.Rank);//2维度
4,int [] 数组, 凡是数组都是Array的实例
5,Array.Reverse(namess);//把数组元素颠倒位置
6,Copy 复制()
Array.Copy(namess,nn,4);//把参数一数组赋值到参数二数组 赋值参数3个数
Console.WriteLine(Array.IndexOf(namess,"余1伟")+"--------"); //元素所在的索引值
7,例题
定义一个数组,存储10个People对象(姓名、性别、年龄)要求年龄随机在18-30之间,性别也是随机的 姓名也是随机的
代码:
输出结果:
二,数组的查询方法
1,目的 通过数组查询一些满足条件(相等,不相等)的元素
有些方法属于Array 静态的方法
有些方法属于非静态的方法 使用对象.方法名(), 需先去创建对象
如: Array.Resize(ref args, 0);
2,FindIndex(); 根据参数二的条件 返回第一个满足条件元素的索引值。
FindIndex(); 其实它的功能已经实现了遍历功能, 并且把每个元素传递到参数二函数中
参数1,传递数组,
参数2是一个函数(方法) 里面代码的匹配条件,是一个bool返回值的,并且有一个参数 这个参数是数组里面的每一个元素
功能匹配的条件, 例如找出年龄大于18的元素的索引
3,FindAll() 找出满足所有条件的元素 返回的是一个数组
如: int[] arr = Array.FindAll(ages, FindEven);
参数一是数组, 参数二是检索条件的函数
4,ForEach() 循环遍历
如: Array.ForEach(arr, v => Console.WriteLine(v+"--------"));
参数1 遍历的数组
参数2 ,是一个函数,v就是每一个元素
5,Find() 找到满足条件的元素
如:bool FindStart(string v )
{
return v.StartsWith("w");
}
Console.WriteLine(Array.Find(new string[] { "ww", "ee", "r", "ddd", "gl", "bb" }, FindStart));
定义方法的地方,如果只用在当前函数中 可以这样定义
6,TrueForAll() 元素是不是都满足一个条件,如果都满足为true,只要一个不满足返回值为false
如:
bool 找到所有满足(int v)
{
return v < 30;
}
Console.WriteLine( Array.TrueForAll(ages, 找到所有满足));
7,Exsist() 数组里面是否存在满足条件的元素,存在一个满足条件即可
Console.WriteLine( Array.Exists(ages, 找到所有满足));//TRUE
8,Any 满足条件有一个即可 等同于ARRAY.EXIST()
如:
string[] names = new string[] { "ww", "ee", "r", "ddd", "gl", "bb" };
Console.WriteLine(names.Any(FindLast1));
9,All() 所有的元素都带满足条件 整体结果为true , 等同于Array.TrueForall()
如: Console.WriteLine(names.All(FindLast1));
10,Contains() 数组是否包含这个元素
Console.WriteLine(names.Contains("abcd")+"--------");
11,Concat 串连两个数组
string[] ss = { "2", "3" };
//string[] sss = (string[])names .Concat(ss);//(string[]) 强制转换成string[]类型//
“ 上文 为本次为第九部分内容,后续将不定时更新,若对主题感兴趣,欢迎订阅获取更新通知.”