C# linq语句学习
using System;
using System.Linq; namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int[] arr = { , , , , , };
var a = from num in arr
where num % ==
select num;
foreach (var i in a)
{
Console.WriteLine(i);
}
Console.ReadKey();
var b = arr.Where(x => x % == ).OrderBy(n=>n); foreach (var i in b)
{
Console.WriteLine(i);
}
Console.ReadKey();
}
}
}
使用LINQ查询.NET对象
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
List<Student> list = new List<Student>()
{
new Student() { Name="张三丰", sex="男", Age= },
new Student() { Name="李三丰", sex="男", Age= },
new Student() { Name="李三丰", sex="女", Age= }
};
var query = from item in list
where item.Name.StartsWith("张") && item.sex == "男"
select item;
foreach(var item in query)
{
Console.WriteLine(item.Name);
}
Console.ReadKey(); }
}
}
查询语句用用查询方法代替:
var query = list.Where(item => item.Name.StartsWith("张") && item.sex == "男");
查询类型是ArrayList的是需要在变量前增加类型的定义:
using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
ArrayList list = new ArrayList()
{
new Student() { Name="张三丰", sex="男", Age= },
new Student() { Name="李三丰", sex="男", Age= },
new Student() { Name="李三丰", sex="女", Age= }
};
var query = from Student item in list where item.Name.StartsWith("张") && item.sex == "男" select item;
foreach (Student item in query)
{
Console.WriteLine(item.Name);
}
Console.ReadKey(); }
}
}
用索引器筛选:
List<Student> list = new List<Student>(){
new Student(){ Name="张三丰", Sex="男", Age= },
new Student(){ Name="张三丰", Sex="男", Age= },
new Student(){ Name="李三丰", Sex="男", Age= },
new Student(){ Name="李三丰", Sex="男", Age= },
new Student(){ Name="李四", Sex="女", Age= },
};
var query = list.Where(( item,index )=>item.Name.StartsWith("李")&&item.Sex=="女"&&index%==);
foreach(Student stu in query){
Console.WriteLine(stu.Name);
}
类型筛选:
object[] arr = {"str",,,"mlh"};
var query = arr.OfType<string>();
foreach(var item in query){
Console.WriteLine(item);
}
复合的from子句
List<Student> list = new List<Student>(){
new Student(){ Name="张三丰", Sex="男", Age=new int[]{ ,} },
new Student(){ Name="张三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李四", Sex="女", Age=new int[]{ ,} },
};
var query =from item in list
from age in item.Age
where age==
select item;
foreach(Student stu in query){
Console.WriteLine(stu.Name);
}
select子句:
List<Student> list = new List<Student>(){
new Student(){ Name="张三丰", Sex="男", Age=new int[]{ ,} },
new Student(){ Name="张三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李四", Sex="女", Age=new int[]{ ,} },
};
var query =from item in list
from age in item.Age
where age==
select item.Name;
foreach(string item in query){
Console.WriteLine(item);
}
查询方法:
List<Student> list = new List<Student>(){
new Student(){ Name="张三丰", Sex="男", Age=new int[]{ ,} },
new Student(){ Name="张三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李三丰", Sex="男", Age=new int[]{ , } },
new Student(){ Name="李四", Sex="女", Age=new int[]{ ,} },
};
var query = list.Where((item) => {
return item.Name.StartsWith("李");
}).Select(item=>item.Name);
foreach(string item in query){
Console.WriteLine(item);
}
group by 分组:
List<Student> list = new List<Student>(){
new Student(){Name="****",Sex="男",Age=new int[]{,}},
new Student(){Name="***",Sex="女",Age=new int[]{,}},
new Student(){Name="***",Sex="女",Age=new int[]{,}},
new Student(){Name="石盐",Sex="男",Age=new int[]{,}},
new Student(){Name="梅盐",Sex="男",Age=new int[]{,}},
};
var query = from item in list
group item by item.Sex;foreach(var stu in query){
foreach(var item in stu){
Console.WriteLine(item.Name);
}
}
C# linq语句学习的更多相关文章
- 常见LINQ语句学习
1.读取20条最新留言 public ActionResult Index() { var mostRecentEntries = (from entry in _db.Entries orderby ...
- LINQ学习系列-----2.1 一个Linq语句
Linq语句介绍 先上源码: 上述代码涵盖了Linq新特性: 代码解析: 针对本文中的几点特性,前面有文章进行阐述.
- [转]LINQ语句之Select/Distinct和Count/Sum/Min/Max/Avg
在讲述了LINQ,顺便说了一下Where操作,这篇开始我们继续说LINQ语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects.LINQ to DataSets.LINQ ...
- 【java开发】分支语句、循环语句学习
一.Java分支语句类型 if-else 语句 switch 关于if-esle语句可以拆分为三种 if语句 if(条件){语句块;} if-else语句if(条件语句){语句块;} if-else ...
- LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别
LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 在写LINQ语句的时候,往往会看到.AsEnumerable() 和 .AsQueryable() .例如: s ...
- 动态拼接linq 使用Expression构造动态linq语句
最近在做动态构造linq语句,从网上找了很多,大多数,都是基于一张表中的某一个字段,这样的结果,从网上可以搜到很多.但如果有外键表,需要动态构造外键表中的字段,那么问题来了,学挖掘机哪家强?哦,不是, ...
- SQL语句学习手册实例版
SQL语句学习手册实例版 表操作 例1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- [转]在Entity Framework中使用LINQ语句分页
本文转自:http://diaosbook.com/Post/2012/9/21/linq-paging-in-entity-framework 我们知道,内存分页效率很低.并且,如果是WebForm ...
- Linq语句基础
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
随机推荐
- Spring设置定时任务时,关于执行时间的规则设置
been需要在xml文件中进行配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE bean ...
- Autofac 依赖注入框架 使用
简介 Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 源 ...
- jfinal undertow web.xml
由于 undertow 是为嵌入式 server 而生,所以 jfinal undertow 项目是不需要 web.xml 这个文件的 线上这版 Filter.Servelt.Listener.Web ...
- Spark缓存策略
当对同一个rdd多次执行action时,如果在磁盘上则每次执行action都会从磁盘将数据加载,如果将其缓存到内存中会提高再次action的读取速度,Spark缓存主要有cache()和persist ...
- GA:利用GA对一元函数进行优化过程,求x∈(0,10)中y的最大值——Jason niu
x = 0:0.01:10; y = x + 10*sin(5*x)+7*cos(4*x); figure plot(x, y) xlabel('independent variable') ylab ...
- 第十一篇 CBV和闪现
前几篇写的都是FBV 现在可以了解一下CBV CBV 其实就是把请求方式都写到一个类中 学过django的一眼应该就明白了 from flask import Flask, render_templa ...
- Android中的WeakReference 弱引用
WeakReference 弱引用 定义:弱引用,与强引用(我们常见的引用方式)相对:特点是:GC在回收时会忽略掉弱引用对象(忽略掉这种引用关系),即:就算弱引用指向了某个对象,但只要该对象没有被强引 ...
- 如何设计一个restful风格的API
1.API接口应该尽量兼容之前的版本,在URL上应保留版本号,并同时兼容多个版本 2.每一个URI代表一个资源 3.请求方式要与http请求方式一致,GET(获取),POST(新增),PUT(更新全部 ...
- ns2.34移植leach协议
运行出现的警告: 1. warning:please use -channel as shown in tcl/ex/wireless-mitf.tcl 因为高版本的NS2支持多信道配置,因此无线节点 ...
- [jzoj]3456.【NOIP2013模拟联考3】恭介的法则(rule)
Link https://jzoj.net/senior/#main/show/3456 Description 终于,在众亲们的奋斗下,最终boss 恭介被关进了库特设计的密室.正当她们松了一口气时 ...