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>

  

结果:

3 tiger3 4 tiger4 5 cat tiger tiger1 tiger3 tiger4 lion Cat

 


__EOF__

本文作者echo_lovely
本文链接https://www.cnblogs.com/echo-lovely/articles/14419737.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   echo_lovely  阅读(416)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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)
点击右上角即可分享
微信分享提示