Linq基本子句

由于个人在学校没有接触过Linq,而且在工作上运用Linq的时候也比较多,准备把LINQ的相关知识学习整理梳理一遍,希望能填补下这个知识点,也为未来减轻压力。

LINQ查询表达式使用C#常见的语言构造,从外观上看,和我们常用的SQL类似,并且查询表达式中的变量可以用匿名类型,所以在很多情况下,不需要指定变量类型就可以构建LINQ表达式。

LINQ的数据源可以是数据库对象或是XML流等,也可以使实现了IEnumerable或者泛型IEnumberable<T>接口的集合对象。

LINQ的基本语法包含如下的8个上下文关键字,如下:

关键字 说明
from 指定范围变量和数据源
where 根据bool表达式从数据源中筛选数据
select 指定查询结果中的元素所具有的类型或表现形式
group 对查询结果按照键值进行分组(IGrouping<TKey,TElement>)
into 提供一个标识符,它可以充当对join、group或select子句结果的引用
order 对查询出的元素进行排序(ascending/descending)
join 按照两个指定匹配条件来Equals连接两个数据源
let 产生一个用于存储查询表达式中的子表达式查询结果的范围变量

1、from子句:

如果要写一个LINQ表达式,就必须是以from子句开头:

            //单个form子句
            string[] values = { "学习使我快乐", "学习使我幸福", "爸爸叫我吃饭", "我充耳不闻" };
            var new_values = from value in values
                        where value.IndexOf("学习") > -1
                        select new { value, value.Length };
            foreach (var new_value in new_values)
            {
                Console.WriteLine("{0},{1}", new_value.value, new_value.Length);
            }
            Console.ReadKey();

            //使用LINQ查询List集合
            List<Person> personList = new List<Person>();
            personList.Add(new Person { Name = "张三", Age = 20, Gender = '' });
            personList.Add(new Person { Name = "李四", Age = 21, Gender = '' });
            personList.Add(new Person { Name = "王五", Age = 22, Gender = '' });

            var new_personList = from Person person in personList
                        where person.Age > 20
                        select person;
            foreach (Person new_person in new_personList)
            {
                Console.WriteLine("{0} 年龄:{1} 性别:{2}", new_person.Name, new_person.Age, new_person.Gender);
            }
            Console.ReadKey();

本文持续更新。。。。。。

猜你喜欢

转载自www.cnblogs.com/jiechou/p/9175794.html