Linq 的基本用法: Sort , OrderBy, Skip,Take,Where,Compare,Joi linq orderby

Select用法 var selectedItems = from item in items where item.ParentID == parentID orderby item.SortIndex descending ,item.Name ascending select item;

0.1 where : var list=collection.Where(t => (txtCustomerName.Text.Trim().Length == 0 || t.ClientName.ToUpper().IndexOf(txtCustomerName.Text.Trim().ToUpper()) >= 0)); // 根据条件查询,如果 txtCustomerName中有值 则匹配collection中的ClientName 是否包含这个txtCustomerName 的值

10.1 LInq 递归实现

定义 function private BuildExpression(IEnumberable<string> enumberableList){...}

return factory =>

{ //递归实现的function

BuildExpression(factory);

};

一、 LinQ To Object 主要使用在 一些 array ,list,collection ,IEnumerable 等数组上面,

var list=new List<T>(); var list2=new List<T>();

1.01 list.Select(t=>t.CreateDate).SeperateToString(","); //select createdate 字段集合并组成string 返回

1.02 list.Select(t=>new DataEntity{Name=t.Name,Value=t.Value}); //select TypeOf(list) 类型中的某些字段到新的 DataEntity 实例中

1.11 list.OrderBy(entity=>entity.CreateDate); //entity 表示 T的一个实例,按照 createdate 顺序排列,反之 则使用 listOrderByDescing

1.12 selectedItems.OrderBy(entity => entity.SortIndex).ThenBy(entity => entity.name); // 多个字段排序

1.2 list.Sort( (x, y) => StringComparer.CurrentCultureIgnoreCase.Compare(x.CreateDate,y.CreateDate)); //x,y 表示 T的一个实例, x 在y前面表示 顺序排列,如果变为Compare(y.CreateDate,x.CreateDate)表示倒序排列

1.3 list.Skip(count) //count 表示 跳过count 个数据 处理分页可以使用 list.Skip((page-1)*pageSize).Take(pageSize);

1.4 list.Take(count) //count 表示 选取count 个数据

实例1(按照createdate 排序,并选取前 n个T 类型的集合):

list.OrderBy(entity==>entity.CreateDate).Take(n).ToList<T>();

1.5 list.Distinct(); //删除重复项,list 必须为一维数据组

1.6 list.Count(); //list 数字的记录条数

1.6.1 list.Count(item=>item.Name=='test') //查询list中 name 为 test 的记录条数

1.7 list.Sum(); //合计,list 必须为一维数组

1.7.1 list.Sum(item=>item.Quantity); //合计,合计list中的quantity 字段

1.8 list.Min(); //list 中的最小值或记录
Linq 的基本用法: Sort , OrderBy, Skip,Take,Where,Compare,Joi linq orderby

1.8.1 list.Select(item=>item.Quantity).Min() //或者list中 数量最少的记录

1.8.2 list.Min(item=>item.Quantity) //或者list中 数量最少的记录

1.8.3 变相实现list min 对 两个属性进行比较

list.Orderby(t=>t.Quantity).thenBy(t=>t.Price).FirstOrDefault();

1.8.10 list.InsertRange(0,list2) //在list的指定位置插入list 2

1.9 list.ForEach(item=>item.Quantity+=1) //每个item的quantity 加1

2.0 list.Concat (list2) // 两个同类型的list ,list2 组合起来,并且不去除相同记录,顺序为 list2 追加到list 后面

2.1 list.Union(list2) //两个同类型的list ,list2 组合, 去除相同记录,并追加到list 后面

list.Union(list2,, new LambdaComparer<string>((a, b) => a == b))

2.2 list.Intersect (list2) //取相交项,取list1,list2 相同项,并且后面可以加compare 条件

2.2 list.Except(list2) //从list中选择 除了 list2中含有的其他所有数据

2.3 list.Aggregate((x,y)=>xyexpression) //聚合函数,将 list中数据 分别进行 聚合

比如 : var list = new List<string>(){"1","12","13","14","15","19","111","121","","23"};

var strReturn = list.Aggregate("return ", (x, y) => (string.IsNullOrEmpty(y) ? x : x + y + " && "));

strReturn = strReturn.Substring(0, strReturn.Length - 3) + ";";

结果为: return 1 && 12 && 13 && 14 && 15 && 19 && 111 && 121 && 23 ;

例子的功能也可以简化为 list.Join("&&")

2.4 list.Join(stringSeperator) 将list中item 使用 stringSeperator 连接起来,如上面的例子

一. 组合应用

以下应用实现了 多个node 和 connector 之间的关联. node 可能没有与connector 相连接, 但是connector 必须与node 连接

实现 取出所有connector , 并取出有连接线的node 和 没有连接线的node

var listFlowActions = new List<FlowAction>();

var connectors = flowActions.Where(i => i.ActionType == MongoConstants.FlowActions.Connector

&& IsFlowActionExists(i.SourceFlowActionId)

&& IsFlowActionExists(i.TargetFlowActionId)).OrderBy(connection => connection.Index);

var allNodes = flowActions.Where(i => i.ActionType != MongoConstants.FlowActions.Connector);

var connectedNodes = new List<FlowAction>();

connectors.Each(t => connectedNodes.Add(allNodes.Where(i => i.Id == t.SourceFlowActionId).FirstOrDefault()))

.Each(t=>connectedNodes.Add(allNodes.Where(i=>i.Id==t.TargetFlowActionId).FirstOrDefault()));

var notConnectedNodes = connectedNodes.Except(connectedNodes) .Each((i, index) => i.X = index * 100)

.Each(i => i.Y = 50);;

Linq 分页

dbconn.Records.OrderBy(p=>p.bid_id).Skip(skip).Take(take).

skip= pageSize*(pageIndex-1),take=pageSize

  

爱华网本文地址 » http://www.413yy.cn/a/25101012/123287.html

更多阅读

数码相机的基本知识 数码相机基本组成

数码相机的基本知识具体要注意以下几点数码相机的基本知识——步骤/方法数码相机的基本知识 1、工作原理数码相机是以电子存储设备作为摄像记录载体,通过光学镜头在光圈和快门的控制下,实现在电子存储设备上的曝光,完成被摄影像的记录

智能马桶的基本功能说明 智能马桶的功能

智能马桶的基本功能说明——简介随着科技的发展,卫浴功能的不断开发,智能马桶开始出现,人性化的外形和功能设计使得智能马桶才高八斗。智能马桶的出现体现了人们对舒适生活和对健康生活的追求,智能马桶在日本的普及率更超过60%。下面为

睫毛膏的正确用法 睫毛膏如何使用

  睫毛膏对于很多女孩子来说其实并不陌生,但是大家真的知道睫毛膏的正确用法吗,如何使用睫毛膏才能让自己的睫毛更翘、更卷,而且看起来不会显得很僵硬呢,如果你还不懂那就来一起学习一下睫毛膏的正确用法吧。睫毛膏的正确用法——工

YET在现在完成时的用法 现在完成时的基本用法

在现在完成时的句子中,already常用于肯定句,yet常用于否定句和疑问句,但yet还有其他用法。1. 用于否定句中,意思是还、尚、迄今、到那时”。例如 he is notyet here. 他还未到。 at three o”clock they had not yet decidedwhether to

《作曲大师》的基本用法 风雅作曲大师免费版

《作曲大师》的基本用法我对简谱知识只是粗略的了解一些,尤其是专业名词说不上来,有朋友需要,还是要硬着头皮介绍一下有关使用《作曲大师》做歌篇的基本步骤及方法。1. 设置:进入软件后,设定歌名、作曲等等,设定声部(单谱或二声部、四声

声明:《Linq 的基本用法: Sort , OrderBy, Skip,Take,Where,Compare,Joi linq orderby》为网友记忆的空分享!如侵犯到您的合法权益请联系我们删除