c#委托 ,自定义函数中使用委托,列表数据排序

1.委托
  Func<int, int, int> t = (  j, i ) =>  i + j;//自定义委托 Func 表示有返回值,  返回两个的和

            Console.WriteLine( t(6,4));//输出 10

            Func<int, bool> a = delegate (int j) { return j > 0; };
            Console.WriteLine(a(6));
            Action<int> b = delegate (int i) //自定义委托 使用Action表示无返回值
            {
                if (i > 0)
                {
                    Console.WriteLine($"{i}>0");
                }
                else
                {
                    Console.WriteLine($"{i}<=0");
                }
            };

           
            int[] num = new int []{ 11,12,90,-2, 0, 4, 2, 5, 7, 9 };//输出数组中 大于等于3的数,并按照升序排列

            foreach (var item in num.Where(t => t >= 3).OrderBy(t=>t))
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("---------------------------------------------------");
            foreach (var item in myWhere(num,t=>t>3)) //调用自定义的函数  myWhere
            {
                Console.WriteLine(item);
            }

/// <summary>
        /// 自定义函数 使用有返回值的委托作为参数 ,
        /// 输出数组中 大于等于3的数,并按照升序排列
        /// </summary>
        /// <param name="items"></param>
        /// <param name="f"></param>
        /// <returns></returns>
        static IEnumerable<int> myWhere(IEnumerable<int> items, Func<int,bool> f)
        {
            List<int> list = new List<int>();
            foreach (var item in items)
            {
                if (f(item)) {
                    list.Add(item);
                } 
            }
            return list.OrderBy(t=>t);
        
        }

 2.排序

1 var items2= list.0rderByDescending(e=>Guid. NewGuid());//随机排序  
2 var items = list.0rderBy(e => e.Age).ThenBy(e => e.Salary); //先按照年龄升序,如果年龄相同 按照 工资排序

 


 3. List分页

List<T> dataList; // 要分页的数据列表
int pageIndex; // 当前页码,从1开始
int pageSize; // 每页的数据数量
 
var pagedData = dataList.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();  //skip 表示跳过,take表示取数据  

 

posted on 2024-12-11 20:58  码农at突泉  阅读(6)  评论(0编辑  收藏  举报