C# Linq lambda表达式实例:过滤、查找与操作技巧
版权申诉
140 浏览量
更新于2024-09-11
收藏 47KB DOC 举报
C# Linq lambda表达式是一种强大的编程工具,它在C#编程中被广泛用于简化和优化数据操作,特别是在处理集合和查询数据时。本文档概述了C# Lambda表达式的常见用法,包括但不限于:
1. 过滤与删除:在处理列表(List)时,传统的for或foreach循环结合删除操作可能会导致索引问题。使用Lambda表达式可以优雅地解决这个问题,例如,通过`Where`子句筛选出满足条件的元素,如移除字符串中包含特定字符的项:
```csharp
collection = collection.Where(c => !c.strFormular.Contains("]")).ToList();
```
这里,我们创建了一个新的列表,只包含那些`strFormular`属性不包含"]"的元素。
2. 查找与转换:`Select`函数用于转换每个元素,如将`TestDate`字段转换为特定格式的字符串,然后去除重复项:
```csharp
var query = instrumentResults.Select(c => c.TestDate.ToString("yyyy-MM-dd") + "|" + c.Seq.Trim()).Distinct().ToList();
```
此操作返回一个不包含重复日期和序列号的列表。
3. 排序与分组:`OrderBy`和`ThenBy`可以用于对元素进行排序,`IsSelect`属性降序,名称升序排列:
```csharp
List<ValueObject> temp = lstDict.OrderBy(c => c.IsSelect, descending: true)
.ThenBy(c => c.Name, ascending: true)
.ToList();
```
这里我们得到了一个按`IsSelect`和`Name`排序的列表。
4. 聚合函数:Lambda表达式可以与内置的聚合函数一起使用,如`Max`、`Count`和`Average`。如计算结果日期的最大值、查询结果的数量以及平均值:
```csharp
DateTime dtMax = cin_resultDetails.Select(c => c.ResultDate).Max();
int cout = cin_currentList.Where(c => c.Seq == Seq).Count();
double average = (from c in cin_resultDetails
where c.LotDetail.SequenceId == lotid && c.IsAccept == 1 && c.IsData
select c.f_Result).Average();
```
5. 关联查询:`Join`方法用于连接两个集合,这里示例中是从`cin_resultDetails`中获取指定`LotId`的`LotDetail`信息:
```csharp
DictqcLotdetail = (from c in cin_resultDetails
where c.LotId == enumtor.Current
select c.LotDetail).ToList().FirstOrDefault();
```
6. 范围查询:在`linq-to-objects`查询中,可以使用`where`子句进行范围条件过滤,如找到`DisplayOrder`大于某个值的元素:
```csharp
NextTab = (from c in cinControlsMessages
where c.DisplayOrder > theSpecificValue
select c).ToList();
```
这些示例展示了Lambda表达式在C#中如何简化数据操作,提高了代码的可读性和效率。熟练掌握Lambda表达式对于编写高效、简洁的C#代码至关重要。
178 浏览量
279 浏览量
110 浏览量
124 浏览量
108 浏览量
2021-11-11 上传
252 浏览量
125 浏览量
2008-03-19 上传
![](https://profile-avatar.csdnimg.cn/08bace002a594d37a73b23f13ba3fb36_baoguanghua408.jpg!1)
2021专业CNC数据采集
- 粉丝: 163
最新资源
- TCP/IP网络连接与文件共享安全:全面实验指南
- Toad for Oracle:快速入门与核心功能解析
- .NET环境下构建与部署ArcGIS Server Web应用教程
- IE与Firefox JavaScript/CSS差异及兼容技巧
- 深入理解Hibernate高级特性:持久化机制与回调拦截
- 美化聊天界面:提升用户体验与设计技巧
- ArcGIS Server 9.2快速入门与地图服务发布
- Linux内核深度指南:构建与定制详解
- Toad全功能指南:从安装到高级使用
- JSP Eclipse科技企业信息管理系统登录与编码示例
- 基于JSP和Eclipse的旅游信息管理网站开发实践
- 使用C#将DataGridView数据导出到Excel的代码示例
- Java SWT图形用户界面教程:布局、事件处理与SWTDesigner
- PL/SQL Developer 6.0用户指南:编写与测试程序
- Java模式思考:问题解决与设计原则
- Prototype.js 1.4 开发者手册 - 中文版