Linq----lambda表达式之where and orderby

            int[] arr = { -32, 53, 5, -34, 56, 45, 34, 5, -34, 45, 2, 3, 6 };
            var query = arr.Where((num, index) => num > num * index);

            foreach (var item in query)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("升序排序");
            var query2 = arr.OrderBy(val=>val);
            foreach (var item in query2)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("降序排序");
            var query3 = arr.OrderByDescending(val => val);
            foreach (var item in query3)
            {
                Console.WriteLine(item);
            }

            Console.WriteLine("绝对值从小到大排序");
            MyComparer mc = new MyComparer();
            var query4 = arr.OrderBy(val => val, mc);
            foreach (var item in query4)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("绝对值从大到小排序");
            var query5 = arr.OrderByDescending(val => val, mc);
            foreach (var item in query5)
            {
                Console.WriteLine(item);
            }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class MyComparer : IComparer<int>
    {
        public int Compare(int x, int y)
        {
            int x1 = Math.Abs(x);
            int y1 = Math.Abs(y);
            if(x1>y1)
            {
                return 1;
            }
            else if(x1==y1)
            {
                return 0;
            }
            else
            {
                return -1;
            }
        }
    }
}


猜你喜欢

转载自blog.csdn.net/hhw199112/article/details/80758531