linq查询语句与查询方法

linq(Language Integrated Query,语言集成查询)是微软提供的一项新技术,能够将查询功能直接引入到C#、VB.NET等编程语言中,查询操作可以通过编程语言自身来表示,而不是嵌入字符串SQL语句。

Linq to Objects 主要负责对象的查询,Linq to XML主要负责xml的查询,linq to ADO.Net 主要负责数据库的查询。

Linq所在的命名空间System.Linq.

简单实例:

int[] nums = { 1, 2, 4, 5, 3, 6, 3, 7 };
            var list = from num in nums
                       where num % 2 != 0
                       orderby num descending
                       select num;
            foreach (int item in list)
            {
                Console.WriteLine(item);
            }

输出结果:7 5 3 3 1

扩展方法Select():Select()是一个泛型扩展方法,Select()方法使用的时候,要求传递一个委托实例(委托实例就是一个方法)。Select()方法里面是一个Lambda表达式,返回结果是一个迭代器(Iterationrator),数组、泛型集合都可以使用扩展方法Select()。

int[] nums = { 1, 2, 4, 5, 3, 6, 3, 7 };
            var list = nums.Select(item => item * item);
            foreach (int item in list)
            {
                Console.WriteLine(item);
            }

where()方法

where()方法是一个扩展泛型方法,where()方法使用的时候要求传递一个委托实例,但该实例是一个判断条件,因此返回的类型必须是bool类型.

 int[] nums = { 1, 2, 4, 5, 3, 6, 3, 7 };
            var list = nums.Where(item => item % 2 == 0)
                          .Select(i => i * i);
            foreach (int item in list)
            {
                Console.WriteLine(item);
            }

排序数据:OrderBy()

OrderBy()是一个扩展方法,OrderBy()里面的参数要求传递一个排序的字段,默认按照升序排序,如果想要降序可以使用OrderByDescending方法。

 int[] nums = { 1, 2, 4, 5, 3, 6, 3, 7 };
            var list = nums.Where(num => num != 0)
                     .Select(num => num * num)
                     .OrderBy(num => num);
            foreach (int item in list)
            {
                Console.WriteLine(item);
            }

实例二:

 string[] nums = { "张勇", "张宇", "王宇", "张宇龙", "张宇州", "李白" };
            var list = nums.Where(num => num.Length == 2)
                         .Select(item => item)
                         .OrderByDescending(item => item.Substring(0, 1));
            foreach (string item in list)
            {
                Console.WriteLine(item);
            }

分组数据:GroupBy()方法

Group()是一个扩展方法,GroupBy()里面的参数要求传递一个分组字段。

string[] nums = { "张勇", "张宇", "王宇", "张宇龙", "张宇州", "李白" };
            var list = nums.Where(num => num.Length == 2)
                         .Select(item => item)
                         .GroupBy(item => item.Substring(0, 1));
            foreach (var num in list)
            {
                Console.WriteLine(num.Key );
                foreach (var item in num)
                {
                    Console.WriteLine(item);
                }
            }

猜你喜欢

转载自blog.csdn.net/qq_37589387/article/details/88557166