Linq 处理 List数据
概述:LINQ又称为语言集成查询,是一种类似于SQL的一种查询语言。语言集成查询让开发人员可以使用.NET程序语言(如C#)去查询数据源,主要数据源为内存中的集合对象、ADO.NET数据集、数据库以及XML,开发人员不用去分门别类地学习众多的查询语法就可以轻松地查询异构数据源。
三种表现形式:复合查询、Lambda表达式以及混合查询。
1、查询集合数据方法依次为:
复合查询:
var result=from n in dataList orderby n.TimeWritten descending select n; //可以将n看做是dataList,得到的结果是dataList里面所有值按时间字段的降序排列。
Lambda表达式查询:
var result=dataList.Select(p=>new{p.ID,p.Name,p.TimeWritten}); //Lambda表达式由匿名方法演变而来。这段Code中p为参数,多个参数可用(p,m..)表示。"=>"为推出符号,后面为返回值。该事例的返回值为对象中指定的字段。
混合查询:
var result=from n in dataList select n.OrderByDescending(p => p.TimeWritten); //查询集合所有数据按照时间字段降序来排序。升序为OrderBy()。
2、删除数据
List<NewSingle> dataList=new List<NewSingle>();
NewSingle single=dataList.Single(p=>p.ID==1);
dataList.DeleteOnSubmit(NewSingle);
dataList.SubmitChanges();
3、插入数据
NewSingle single=new NewSingle();
single.Name="Test1";
single.TimeWritten=this.DateTime.Now.ToString();
single.Subject="subject";
dataList.InsertOnSubmit(single);
dataList.SubmitChanges();
4、修改数据
NewSingle single=from n in dataList where n.ID == 3 select n;
single.Name="Test2";
single.TimeWritten="2011-3-17";
single.Subject="subject2";
dataList.SubmitChanges();
注:linq中不支持Convert转换。
5、查询绑定DropDownList
var data=from n in dataList select new { Name=n.Name,ID=n.ID};
DropDownList1.DataTextField="Name";
DropDownList1.DataValueField="ID";
DropDownList1.DataSource=data;
DropDownList1.DataBind();
6、绑定GridView
GridView1.DataSource=dataList.Select(p=>p);
GridView1.DataBind();
7、表联接
var result=from a in mytest.stuInfo join b in mytest.stuMarks on a.stuNo equals b.stuNo (into c) select new {Name=a.stuname,b.writtenExam};
8、其他方法
DeleteAllOnSubmit<T>(object) 删除T类型的对象
Where() 条件查询返回bool
GroupBy() 分组
SubString(n,m) 从n开始截取m条数据
Skip(number)跳过指定数量的项 】常用于表格分页
Take(number) 提取指定数量的项 】
TakeWhile() 根据指定条件提取
SkipWhile() 根据指定条件跳选项,从第一个不符合小件的项开始提取
ThenBy(s=>s.Name) 复合排序,出现在多字段列表中,置于在OrderBy后面
Distinct() 过滤重复数据
ToList() 转换成List
Count() 数据总数
Max()/Min() 最大值/最小值
Average() 平均值
Sum() 总和
Range() 例:num=Enumerable.Range(1,10) 从1开始产生十个数据
Repeat(重复值,重复次数) 生成重复项
传送门:http://blog.163.com/lm_regina/blog/static/17419653620110287530239
Linq 处理 List数据的更多相关文章
- Entity Framework 6 Recipes 2nd Edition(11-11)译 -> 在LINQ中调用数据库函数
11-11. 在LINQ中调用数据库函数 问题 相要在一个LINQ 查询中调用数据库函数. 解决方案 假设有一个任命(Appointment )实体模型,如Figure 11-11.所示, 我们想要查 ...
- linq根据传入数据集合查询对应子级数据
工作中经常用到的linq根据传入数据集合查询对应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点对应ID数据集合,再根据ID数据集合查询全部子级数据. //获取缓存数据 ...
- linq依据传入数据集合查询相应子级数据
工作中经经常使用到的linq依据传入数据集合查询相应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点相应ID数据集合,再依据ID数据集合查询所有子级数据. //获取缓存 ...
- LINQ和.NET数据访问
.NET数据访问 在.NET中对于数据的访问大致有三个层面,数据访问层.内存数据集.业务逻辑层.数据层,包括了XML配置文件以及一些常用的数据库(使用SQL语句):内存数据集,主要是DataSet数据 ...
- mvc+linq+EF对数据表的查删改
/// <summary> /// 查询数据库中学生姓名 /// </summary> /// <returns></returns> public A ...
- C# Linq处理list数据
获取数据列表. //获取数据列表,Model是类 IList<Model> list = dao.getmx(Model, pageInfo);//DataTable数据DataTable ...
- Linq处理list数据
获取数据列表. //获取数据列表,Model是类 IList<Model> list = dao.getmx(Model, pageInfo);//DataTable数据DataTable ...
- Linq中字段数据类型转换问题(Linq to entity,LINQ to Entities 不识别方法"System.String ToString()"问题解决)
1.在工作中碰到这样一个问题: 使用linq时,需要查询两个表,在这两张表中关联字段分别是int,和varchar()也就是string,在linq中对这两个字段进行关联, 如果强制类型转换两个不同类 ...
- 通过Linq查找重复数据
一.模拟初始化集合数据 List<Student> students = new List<Student>() { new Student(){ Age=18,Name=&q ...
随机推荐
- Grid++Report报表工具C/S实战篇(五)
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第五部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...
- C# WPF 中WebBrowser拖动来移动窗口,改变窗口位置
前言 wpf中的WebBrowser相比之前的winform阉割了不少东西,也增加了不少东西,但是msdn对wpf也没有较好的文档 WebBrowser可以说是一个.NET控件,相对于WPF中的控件, ...
- UWP 响应键盘组合快捷键
方法1:响应Ctrl+?快捷键 首先在load事件或者keydown事件内注册事件 public MainPage() { this.InitializeComponent(); // Registe ...
- jQuery获取Table某列的值
在写此篇博文时,发现在以前曾写过<获取DataTable选择第一行某一列值>http://www.cnblogs.com/insus/p/5434062.html . 但是与此篇所说的完全 ...
- Python运维脚本整理
Python 实现的自动化服务器管理 import sys import os import paramiko ssh = paramiko.SSHClient() ssh.set_missing_h ...
- @transactional作用和事务
今天在博客园看到有发布spring的注解,留意到@transactional这个注解.立马就百度.学习了 使用这个注解的类或者方法表示该类里面的所有方法或者这个方法的事务由spring处理,来保证事务 ...
- 如何在vue中全局引入stylus文件的公共变量
新建 一个公共的stylus公共文件添加公共变量,如下: 修改下图圈出的文件: 具体的修改如下: // generate loader string to be used with extract t ...
- 将celery定时任务设置为根据本地时区触发
默认celery的时区为UTC,如果要在django项目中将celery定时任务配置为根据本地时区触发,则需要修改 在setttings.py 添加以下任意一行: # celery 相关配置 CELE ...
- [工具]渗透神器CobaltStrike 3.1.2 K8去后门破解版 & Windows版TeamServer
CS简介 Cobalt Strike(简称CS)是全球黑客公认一款非常优秀的渗透测试神器,以metasploit为基础的GUI的框架式渗透工具,集成了传统远控功能(远程桌面VNC.键盘记录.CmdSh ...
- 在mac上安装xcode时 弹出需要关闭itunes的警告 解决办法
1 首先打开终端(在工具栏中:前往-->使用工具-->终端) 2 输入 ps -ef | grep iTunes 回车 501 300 207 0 11:58上午 ?? ...