Linq常用语法
来源:互联网 发布:国研网数据子库 编辑:程序博客网 时间:2024/05/01 15:18
Linq(Language Intergarted Query)是对数据查询操作的语句
使用Linq语句可以对查询语句里字符串进行检查
使用Linq语句查询的要求:实现了IEnumerable接口
class Program{ static void Main(string[] args) { int[] number = {10,8,20,44,1, 23, 13, 4, 65, 6}; //LINQ的查询语法 var set = from i in number where i%2 == 0 orderby i select i; foreach (var j in set) { Console.WriteLine(j); } Console.WriteLine("Method LINQ Query:"); //C#方法型LINQ语句 var bigger = number.Where(x =>x>10).OrderByDescending(x=>x).First(); Console.WriteLine(bigger); }}
LINQ的query语法三步骤:
1.数据源(数据源要求实现了IEnumerable接口的对象)
2.查询语句
3.执行(使用foreachb遍历或调用count()等方法)
public class student { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }public class electiveGrade{ public int stuId { get; set; } public string courseName { get; set; } public double grade { get; set; }}static void Main(string[] args){ //创建数据源 List<student>students=new List<student>(); students.Add(new student() {Id = 1,Name = "John",Age = 19}); students.Add(new student() { Id = 2, Name = "Jim", Age = 18 }); students.Add(new student() { Id = 3, Name = "Tom", Age = 19 }); students.Add(new student() { Id = 4, Name = "Liutao", Age = 22 }); //编写查询语句 var query1 = from stu in students group stu by stu.Age; //使用group对要查询的语句进行分组,查询出来的结果按年龄分成一组 foreach (var i in query1) { foreach (var VARIABLE in i) { Console.Write("{0} {1} {2} ",VARIABLE.Id,VARIABLE.Name,VARIABLE.Age); Console.WriteLine(); } } Console.WriteLine(); List<electiveGrade>electiveGrades=new List<electiveGrade>(); electiveGrades.Add(new electiveGrade() {courseName = "高等数学",grade = 99,stuId = 1}); electiveGrades.Add(new electiveGrade() { courseName = "高等数学", grade = 59, stuId = 2 }); electiveGrades.Add(new electiveGrade() { courseName = "高等数学", grade = 42, stuId = 11 }); electiveGrades.Add(new electiveGrade() { courseName = "高等数学", grade = 75, stuId = 4 }) //join用于连接两个不同的数据源对象,其作用类似于数据库里表间连接操作 var connect = from score in electiveGrades join stu in students on score.stuId equals stu.Id select new {stuGrade=score.grade,stuID=stu.Id,stuName=stu.Name,stuAge=stu.Age}; foreach (var index in connect) { Console.Write("{0} {1} {2} {3}", index.stuID,index.stuName,index.stuGrade,index.stuAge); Console.WriteLine(); }}
此外还有let、into关键字。
可以用into关键字对分组得到的结果做临时的打包用于再次过滤;
let关键字的作用类似于定义一个中间变量
例:
string[] set={"Hello world ! Welcome to learn Linq","Thank You"};var res=from str in set let words=str.Spilt(" ") from word in words let w=word.Tolower() select w;
words为分割出来的字符串集合,下面再把words作为一个集合把大写字符转换为小写。
0 0
- Linq常用语法
- 常用linq语法
- LINQ语法
- LINQ语法
- Linq语法
- Linq语法
- linq语法
- Linq 语法
- Linq语法
- Linq语法
- 常用linq
- linq 语法lambpa语法总结
- LINQ语法 收藏
- Linq基本语法
- #3.0 LINQ 查询语法
- LINQ中的Aggregate语法
- Linq基本语法
- Linq语法构成
- https://github.com/getlantern/lantern/
- myeclipse 开发web项目发布到Tomcat下root目录
- 简单命令
- HTML+CSS基础 table中的tr中的td的colspan属性创建跨列的单元格(创建不规整表格)
- 软链接和硬链接
- Linq常用语法
- insertBefore() 方法
- iPhone 7与7 Plus 相机区别有多大 请看测试
- retrofit网络请求框架
- CSS基础(七):z-index详解
- WebCrawler Java小爬爬 从入门到放弃 第四章
- TCP三次握手和四次挥手的全过程
- ……
- 状态模式