C# List应用 Lambda 表达式
#参考链接 : https://blog.csdn.net/wori/article/details/113144580
首先 => 翻译为{ }
然后没有然后
###主要基于我工作中常用的几种情况,写个小例子:
这个Java叫实体类,C#不知道叫啥
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <code-pre class = "code-pre" id= "pre-ZFbhAY" ><code-line class = "line-numbers-rows" ></code-line> public class Zoo <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> public int ID { get ; set ; } <code-line class = "line-numbers-rows" ></code-line> public string Name { get ; set ; } <code-line class = "line-numbers-rows" ></code-line> public string Type { get ; set ; } <code-line class = "line-numbers-rows" ></code-line> public int Location { get ; set ; } <code-line class = "line-numbers-rows" ></code-line> public float Money { get ; set ; } <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> public Zoo( int iD, string name, string type, int location, float money) <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> ID = iD; <code-line class = "line-numbers-rows" ></code-line> Name = name; <code-line class = "line-numbers-rows" ></code-line> Type = type; <code-line class = "line-numbers-rows" ></code-line> Location = location; <code-line class = "line-numbers-rows" ></code-line> Money = money; <code-line class = "line-numbers-rows" ></code-line> } <code-line class = "line-numbers-rows" ></code-line> } </code-pre> |
然后测试几种情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <code-pre class = "code-pre" id= "pre-e5MDJX" ><code-line class = "line-numbers-rows" ></code-line> static void Main() <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> List<Zoo> lists = new List<Zoo>(); <code-line class = "line-numbers-rows" ></code-line> Zoo z = new Zoo(001, "tiger" , "Tiger" , 21, 50); <code-line class = "line-numbers-rows" ></code-line> Zoo z1 = new Zoo(002, "tiger1" , "Tiger" , 21, 20); <code-line class = "line-numbers-rows" ></code-line> Zoo z2 = new Zoo(003, "tiger3" , "Tiger" , 21, 30); <code-line class = "line-numbers-rows" ></code-line> Zoo z3 = new Zoo(004, "tiger4" , "Cat" , 22, 40); <code-line class = "line-numbers-rows" ></code-line> Zoo z4 = new Zoo(005, "cat" , "Cat" , 22, 70); <code-line class = "line-numbers-rows" ></code-line> Zoo z5 = new Zoo(006, "lion" , "BigStone" , 20, 40); <code-line class = "line-numbers-rows" ></code-line> lists.Add(z); <code-line class = "line-numbers-rows" ></code-line> lists.Add(z1); <code-line class = "line-numbers-rows" ></code-line> lists.Add(z2); <code-line class = "line-numbers-rows" ></code-line> lists.Add(z3); <code-line class = "line-numbers-rows" ></code-line> lists.Add(z4); <code-line class = "line-numbers-rows" ></code-line> lists.Add(z5); <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> //挑出其中的符合要求的:我这里写死要求为3、4、5 <code-line class = "line-numbers-rows" ></code-line> List<Zoo> tigers = lists.FindAll(x =>x.ID>2&&x.ID<6); <code-line class = "line-numbers-rows" ></code-line> foreach ( var item in tigers) <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> Console.WriteLine(item.ID+ "\t" +item.Name); <code-line class = "line-numbers-rows" ></code-line> } <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> //挑出符合要求且返回新集合,此处测试返回string列表 <code-line class = "line-numbers-rows" ></code-line> //Where 中为bool类型表达式 <code-line class = "line-numbers-rows" ></code-line> //Select 中为需要的形式: 如下面要返回Zoo,而不是string, 则 Select(e=>e) <code-line class = "line-numbers-rows" ></code-line> //最后的ToList是确定返回类型,根据实际需要 <code-line class = "line-numbers-rows" ></code-line> List< string > zoos = lists.Where(x => (x.Money + 10) < 70).Select(e=>e.Name).ToList(); <code-line class = "line-numbers-rows" ></code-line> foreach ( var item in zoos) <code-line class = "line-numbers-rows" ></code-line> { <code-line class = "line-numbers-rows" ></code-line> Console.WriteLine(item); <code-line class = "line-numbers-rows" ></code-line> } <code-line class = "line-numbers-rows" ></code-line> <code-line class = "line-numbers-rows" ></code-line> //返回单个符合要求的 <code-line class = "line-numbers-rows" ></code-line> Console.WriteLine(lists.Find(x => x.Money==40 && x.Name.Contains( "ger" )).Type); <code-line class = "line-numbers-rows" ></code-line> } </code-pre> |
结果:
__EOF__

本文作者:echo_lovely
本文链接:https://www.cnblogs.com/echo-lovely/articles/14419737.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/echo-lovely/articles/14419737.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)