LinQ使用积累

1. 用Linq查询datatable中的行是否重复
intcount1 = (from p indt.AsEnumerable() select p).Distinct().Count();
intcount2 = (from p indt.AsEnumerable() select p).Count();
if(count1 < count2)
{
  MessageBox.Show("重复");
}

2. 用Linq查询List中的行是否重复
List<int> Numbers = newList<int> { 1, 2, 3, 7, 31 };
Console.WriteLine(Numbers.Distinct().Count() == Numbers.Count);
Console.ReadKey();

3. 用Linq查找重复值的方法
Dictionary plants = new Dictionary() {
  {1,"Speckled Alder"},
  {2,"Apple of Sodom"},
  {3,"Hairy Bittercress"},
  {4,"Pennsylvania Blackberry"},
  {5,"Apple of Sodom"},
  {6,"Water Birch"},
  {7,"Meadow Cabbage"},
  {8,"Water Birch"}
};
//find dictionary duplicate values.
var duplicateValues = plants.GroupBy(x => x.Value).Where(x => x.Count() > 1);

4. 用Linq根据需要重组新的实体并输出
A. 使用单一对象列表重组新的对象列表:
var srcObjectList = 原本实例对象列表.ToList()
var newObjectList = from a in srcObjectList select new
{
  新对象成员1 = srcObjectList.属性1,
  新对象成员2 = srcObjectList.属性2,
  新对象成员3 = srcObjectList.属性3,
  新对象成员4 = srcObjectList.属性4,
  新对象成员5 = srcObjectList.属性2 + srcObjectList.属性3
}
新对象列表(newObjectList)使用旧对象列表(srcObjectList)的部分属性,重组成新的对象列表。

B. 使用两个不同对象列表属性重组新的对象列表:
var srcObjectList1 = 原本实例对象列表1.ToList()
var srcObjectList2 = 原本实例对象列表2.ToList()
var newObjectList = from a in srcObjectList1 join b in srcObjectList2 on a.属性 equals b.属性 select new
{
  新对象成员1 = a.属性1,
  新对象成员2 = b.属性2,
  新对象成员3 = a.属性2,
  新对象成员4 = b.属性3,
  新对象成员5 = b.属性4,
  新对象成员6 = a.属性3,
  新对象成员7 = a.属性4 + b.属性1
}
新对象列表(newObjectList)使用两个旧对象列表(srcObjectList1、srcObjectList2)的部分属性,重组成新的对象列表。

时间: 2024-10-06 01:10:25

LinQ使用积累的相关文章

LINQ to OBJECT函数积累

2013-12-21 17:22 568人阅读 评论(0) 收藏 举报 分类: 我の原创(113) LINQ(5) 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.Concat操作符 Concat操作符用于连接两个序列,生成一个新的序列. [csharp] view plain copy 在CODE上查看代码片派生到我的代码片 string[] str1 = { "one", "two" }; string[] str2 = { "three&q

PHP SQL写法 积累(注:PHPSQL与LINQ SQL相似)

1: $data ['parentid'] = $pid; M('menu')->where($data)->order(' id asc  ')-> select();   //  select 是选择多条数据 M('menu')->where($data)->limit(1)-> find();   //  find 是选择一条数据

点滴积累【C#】---验证码,ajax提交

效果: 思路: 借用ashx文件创建四位验证,首先生成四位随机数字.然后创建画布,再将创建好的验证码存入session,然后前台进行button按钮将文本框中的值进行ajax请求到后台,和session中的验证码进行对比,成功返回true,失败返回false. 代码: [前台] 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="verifycodeDemo.aspx.cs"

.net主要题型积累

1.简述 private. protected. public. internal 修饰符的访问权限. private : 私有成员, 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可以访问. public : 公共成员,完全公开,没有访问限制. internal: 当前程序集内可以访问. 2.ADO.NET中的五个主要对象 Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的

点滴积累【C#】---Highcharts图形统计

效果: 思路: 后台获取数据!然后拼接为前台所要求的格式,再将拼接好的StringBuilder给了hidden控件! 然后前台获取JQuery获取Hidden的值,最后将值赋给图形! 代码: [前台] 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Statistical.aspx.cs" Inherits="Demo.Statistical" %

Linq 中 Any与All

昨天突然看到之前写的一个积累文档,其中文档中有一个Linq Any和All的注意事项: 注意Any 和 All var list = new List<int>(); var aa = list.All(n => n > 1); var bb = list.Any(n => n > 1); // aa: true       bb: false 其中List是一个元素个数为0的整型List. 可能大多数人跟我一样,第一次见到都会认为aa为false. 然后这个是我在程序

WinRT知识积累1之读xml数据

前述:这个知识是在Windows8.1或WP8.1中运用Linq to xml获取一个xml文件里的数据.(网上也很多类似的知识,可以借鉴参考) 平台:windows8.1 metro 或者WP8.1 步骤:1.在项目中准备一个xml文件.我在项目中建立了一个city.xml,如图: city.xml具体代码如下: <?xml version="1.0" encoding="utf-8" ?> <China> <city> <

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

阅读目录: 1.环路执行对象模型.碎片化执行模型(假递归式调用) 2.N层对象执行模型(纵横向对比链式扩展方法) 3.LINQ查询表达式和链式查询方法其实都是空壳子 4.详细的对象结构图(对象的执行原理) 5.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系 6.完整的自定义查询 1]. 环路执行对象模型.碎片化执行模型(假递归式调用) 这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没有搞懂LINQ的本意之前,在我脑海里一直频

.NET深入解析LINQ框架(一:LINQ优雅的前奏)

阅读目录: 1.LINQ简述 2.LINQ优雅前奏的音符 2.1.隐式类型 (由编辑器自动根据表达式推断出对象的最终类型) 2.2.对象初始化器 (简化了对象的创建及初始化的过程) 2.3.Lambda表达式 (对匿名方法的改进,加入了委托签名的类型推断并很好的与表达式树的结合) 2.4.扩展方法 (允许在不修改类型的内部代码的情况下为类型添加独立的行为) 2.5.匿名类型 (由对象初始化器推断得出的类型,该类型在编译后自动创建) 2.6.表达式目录树(用数据结构表示程序逻辑代码) 3.LINQ