LINQ处理List数据

Linq处理List数据

2011-01-28 19:53:00|  分类: 默认分类|举报|字号 订阅

概述:LINQ又称为语言集成查询,是一种类似于SQL的一种查询语言。语言集成查询让开发人员可以使用.NET程序语言(如C#)去查询数据源,主要数据源为内存中的集合对象、ADO.NET数据集、数据库以及XML,开发人员不用去分门别类地学习众多的查询语法就可以轻松地查询异构数据源。

三种表现形式:复合查询、Lambda表达式以及混合查询。

1、查询集合数据方法依次为:

  • var result=from n in dataList orderby n.TimeWritten descending select n;

//可以将n看做是dataList,得到的结果是dataList里面所有值按时间字段的降序排列。

  • 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(重复值,重复次数) 生成重复项
时间: 2024-10-19 22:48:38

LINQ处理List数据的相关文章

linq根据传入数据集合查询对应子级数据

工作中经常用到的linq根据传入数据集合查询对应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点对应ID数据集合,再根据ID数据集合查询全部子级数据. //获取缓存数据 object obj = Caching.GetCache(CacheKey + UModel.RoleId); if (obj != null)//判读缓存数据是否null { SysFunList = (DataSet)obj; } else { string strSql = "select

MVC——mvc+linq+EF对数据表的查删改

上篇博客中简单的介绍了MVC的组成以及各部分的作用.这篇博客将介绍MVC+linq+EF框架实现对数据表的查询.删除.修改. 先说一下什么是Linq? linq是基于关系数据的.net语言集成查询,用于对象形式管理关系数据.在本篇博客的实例中主要使用linq进行查询数据. 再说一下什么是EF? 说到EF不得不先说一下ORM,ORM全称:(Object-Relation  Mapping)即对象-关系映射.ORM是将关系数据库中的业务数据用对象的形式表现出来,并通过面向对象的方式将这些对象组织起来

LINQ和.NET数据访问

.NET数据访问 在.NET中对于数据的访问大致有三个层面,数据访问层.内存数据集.业务逻辑层.数据层,包括了XML配置文件以及一些常用的数据库(使用SQL语句):内存数据集,主要是DataSet数据集,在DataSet中包括Datatable,而Datatable中又分为DataRow和DataColumn.具体的访问数据集中的数据,一般通过DataRow:业务逻辑层,就是常用的一些对象的泛型集合. LINQ基础 与数据访问三个层面对应,数据访问层,使用LINQ to XML.LINQ to

linq依据传入数据集合查询相应子级数据

工作中经经常使用到的linq依据传入数据集合查询相应子级数据,整理共享,希望大家都能用得上,代码中doublesArray 为父节点相应ID数据集合,再依据ID数据集合查询所有子级数据. //获取缓存数据 object obj = Caching.GetCache(CacheKey + UModel.RoleId); if (obj != null)//判读缓存数据是否null { SysFunList = (DataSet)obj; } else { string strSql = "sele

C# 两个List泛型用 Linq去重复数据 或者 得到重复数据

1, 两个List泛型用Linq去重复数据 Code: List<string> lstA = new List<string> { "E00401501B652563", "E00401501B652564", "E00401501B652565", "E00401501B652566", "E00401501B652567", "E00401501B652568&quo

使用LinQ实现对数据对象的查询

因为项目需要,接触到了LinQ,经过一段时间的学习,对LinQ有了简单的认识,本文就这个话题做个简单的叙述. 首先,应该写出几个问题,从宏观上了解一下.LinQ是什么?为什么使用LinQ?使用它有什么好处? 语言集成查询(Language Intergrated Query),是一组用于C#和vb语言的扩展,它允许编写C#或者vb代码以查询数据库相同的方式操作内存数据.----百度百科 通俗点说,它就是查询数据的.那么为什么要用它来查询数据呢,使用它有什么有点吗? 我们从稍微抽象一点的角度来考虑

C# Linq处理list数据

阅读目录 1.GroupBy与group by 2.Where条件筛选. 3.Select(取list中的id列数据,并按逗号分隔成字符串.例:1,2,3,4,5) 4.Where与Select的同时使用,取list中的id列数据,并按逗号分隔成字符串. 5.左联与内联(例子是DataTable类型) 6.OrderBy排序 7.OrderBy随机排序 8.Skip,Take分页(LINQ:使用Take和Skip实现分页) 9.Distinct去重 获取数据列表. //获取数据列表,Model是

Linq选择查询数据操作符

以下是一些查询数据后再次选择数据的操作符: First - 返回集合中的第一个元素:不延迟 FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值):不延迟 Last - 返回集合中的最后一个元素:不延迟 LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值) ElementAt - 返回集合中指定索引的元素:不延迟 ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值):不延迟 Contains - 判断集合

Linq批量删除数据

public void DeleteNews(List<string> IDList) { using (ETCDataContext etcDataContext = this.EtcDataContext) { var news = etcDataContext.SYS_News.Where(o => IDList.Contains(o.ID.ToString())); etcDataContext.SYS_News.DeleteAllOnSubmit(news); etcDataC