怎么选择电商网站建设,虎丘做网站价格,google chrome,建设网站什么软件好Lambdan表达式lambda表达式: 可以让我们定义一个变量接收的一个函数#xff0c;主要是作为另外一个函数的参数进行使用#xff0c;具体体现变量和函数体之间使用 #xff0c;所以其他的编程语言称之为箭头函数#xff0c;但是严谨来说C#没有箭头函数如果一个函数仅在当…Lambdan表达式lambda表达式: 可以让我们定义一个变量接收的一个函数主要是作为另外一个函数的参数进行使用具体体现变量和函数体之间使用 所以其他的编程语言称之为箭头函数但是严谨来说C#没有箭头函数如果一个函数仅在当前作用域进行使用可以把函数定义在当前作用域就行int Sum(int a,int b) { return a b; } Console.WriteLine(Sum(10,20));定义一个lambda表达式方法组成参数列表、返回值、方法名、方法体它有三种类型第一种 使用Func关键字接收有返回值的lambda表达式Func 方法类型、函数类型第一个类型 是参数1的类型第二个类型 是参数2的类型第三个类型 是返回值的类型结构组成f1 变量名(ab)参数类别 不用写类型多个参数的时候加个 () 表达式{ }方法体有返回值的添加return 关键字Funcint, int, int f1 (a, b) { return a b; }; Console.WriteLine(f1(10,20));//可以通过变量名调用函数第二种 使用Action关键字接收无返回值的lambda表达式定义一个字符串参数 无返回值的lambda表达式如果一个参数的时候可以把()不写如果函数体只有一句可以把{ }省略掉Actionstring f2 (a) Console.WriteLine(a); f2(hello word);第三种 使用Predicate关键字接收返回值为bool类型的lambda表达式Predicateint f3 a a%2 0; Console.WriteLine(f3(3));//false Funcint ,bool f4 a a%30; Console.WriteLine(f4(9));//true/*Func参数类型 参数类型 返回值类型 f1 (a,b){return ab} *可以接收有返回值的lambda表达式 参数个数没有限制、返回值的类型也是没有限制 * *Actionstring f2 a Console.WriteLine(a) *只能接收无返回值的lambda表达式 * *Predicateint f3 a a%20; *只能接收返回值为bool类型的lambda表达式 * */lambda具体的使用场景: 最为另外一个函数参数进行使用 数组的查询方法当中使用int[] ints { 1, 2, 3, 4, 5, 6, 7, 8, 9, }; Console.WriteLine(Array.Find(ints,a a%20)); int[] ss Array.FindAll(ints, v v % 3 0);//找到所有的数组 //第一种遍历数组 for (int i 0; i ss.Length; i) { Console.WriteLine(ss[i]----); } //第二种遍历数组 foreach (var item in ss) { Console.WriteLine(item); } //第三种遍历数组 Array.ForEach(ss, v Console.WriteLine(v???????)); //where 找到所有满足条件的元素 foreach (var item in ints.Where(v { return v % 3 0; })) { Console.WriteLine(item); }可空类型数据空类型是null引用类型的变量都可以赋值成nullstring s null; int[] ints null; object o null;基本数据类型不能赋值为null的int a null;// 报错如果想让基本数据类型能够赋值为null 可以使用int? a null; // a以后可以等于null 在原先的范围内加一个null赋值范围 a 100;// a可以再赋值100 // int sum a 100; 报错 a是可空类型但是sum不是可空类型即想使用可空类型 又想使用基本类型进行运算可以把可空类型再加一个问号 使用双??int? b null; // b可空类型 b 300; int aa b ?? 100; // b?? 如果b是null aa的值100, 如果b不是null aa的值300 Console.WriteLine(aa); //300 int? c null; int d c ?? 100; Console.WriteLine(d);//100 c 999; int sum (c ?? 100) 200; Console.WriteLine(sum);// 1199动态数组ArrayListArraylist:动态数组一个不固定长度的数组集合并且可以存储不用类型的元素例如一个arrayList对象可以存储整形、字符串、对象、数组等但是int[]这种数组一旦创建好之后 不能后续添加元素 也就是长度他是固定的 并且一个数组对只能存储一种类型的元素弊端ArrayList 弊端: 取出元素是一个object类型 必须对其再进行类型转换使用动态数组ArrayList第一步先创建一个arrayList对象int[] ints new int[] { 1, 2, 3 }; People p1 new People() { Name张三 }; ArrayList arr new ArrayList() { 1, 2, 3,李四,true,ints,p1 };//这句话是初始化添加的元素第二步取出元素 通过索引值取元素 arr[i]//int aa arr[0];//数组取出的元素是object类型 如果想转成其他类型 必须强制转换一下 Console.WriteLine(Convert.ToInt32(arr[1]));第三步添加元素arr.Add(1); arr.Add(王五);//添加一个元素 arr.AddRange(ints);//也可以添加一个数组第四步删除元素arr.Remove(王五);//删除他这个指定的元素 arr.RemoveAt(0); //删除指定位置的元素 //arr.RemoveRange(0,3); //从指定参数1位置开始删除下面参数个数的元素第五步修改元素arr[1] 48;第六步数组排序arr.Sort();//默认升序排序第七步indexOf() 元素的索引值Console.WriteLine(arr.IndexOf(48));第八步count 获取数组的个数Console.WriteLine(arr.Count);第九步Reverse() 把数组里面的元素进行倒序arr.Reverse();第十步toArray() 把ArrayList转成Array(int[])object[] i1 arr.ToArray();ArrayList 类: arr 对象查询可以查询一个arr[1],查询多个for遍历最后算法遍历元素如果数组元素类型不一样遍历的时候把类型改成objectforeach (object i in arr) { Console.WriteLine(i---------); }List数组ArrayList 动态数组 存储元素类型object类型 取出的时候转成对应的类型类型不安全List: 方法和ArrayList很像 区别在于list可以指定类型进行存储存储同一种类型数据取出时候不用强制转换保证数据类型安全创建一个List的集合对象Listint list new Listint();//创建一个集合对象1 添加元素list.Add(1); list.Add(2); list.Add(3); list.AddRange(new int[] { 9, 10, 11 });//添加多个数2 删除list.Remove(11);//删除指定元素 list.RemoveAt(list.Count - 1);//删除指定位置的元素 list.RemoveAll(v v % 3 0);//删除满足条件对的所有的元素3 修改list[0] 20;4 插入数据list.Insert(1, 10);//在索引值为1的地方插入8885 IndexOf() 获取元素的索引值Console.WriteLine(list.IndexOf(888));6 遍历foreach (int i in list) { Console.WriteLine(i); }