Linq基本子句

Posted jiechou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();

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

以上是关于Linq基本子句的主要内容,如果未能解决你的问题,请参考以下文章

Linq to entity 没有生成 where 子句

LINQ中的一些查询语句格式

LINQ 常用from

LINQ 查询子句的顺序是不是会影响实体框架的性能?

带有相关数据的where子句的Linq查询

带有可选 Where 子句和 Sql Server CE 的 Linq