C# List LinQ Lambda 表达式
------------恢复内容开始------------
# 参考链接 : https://blog.csdn.net/wori/article/details/113144580
首先 => 翻译为{ }
然后 Where 中为bool类型表达式
再然后 Select 中为需要的形式: 如下面要返回Zoo,而不是string, 则 Select(e=>e)
然后没有然后
### 主要基于我工作中常用的几种情况,写个小例子:
这个Java叫实体类,C#不知道叫啥
public class Zoo { public int ID { get; set; } public string Name { get; set; } public string Type { get; set; } public int Location { get; set; } public float Money { get; set; } public Zoo(int iD, string name, string type, int location, float money) { ID = iD; Name = name; Type = type; Location = location; Money = money; } }
然后测试几种情况:
static void Main() { List<Zoo> lists = new List<Zoo>(); Zoo z = new Zoo(001, "tiger", "Tiger", 21, 50); Zoo z1 = new Zoo(002, "tiger1", "Tiger", 21, 20); Zoo z2 = new Zoo(003, "tiger3", "Tiger", 21, 30); Zoo z3 = new Zoo(004, "tiger4", "Cat", 22, 40); Zoo z4 = new Zoo(005, "cat", "Cat", 22, 70); Zoo z5 = new Zoo(006, "lion", "BigStone", 20, 40); lists.Add(z); lists.Add(z1); lists.Add(z2); lists.Add(z3); lists.Add(z4); lists.Add(z5); //挑出其中的符合要求的:我这里写死要求为3、4、5 List<Zoo> tigers = lists.FindAll(x =>x.ID>2&&x.ID<6); foreach (var item in tigers) { Console.WriteLine(item.ID+"\t"+item.Name); } //挑出符合要求且返回新集合,此处测试返回string列表 //Where 中为bool类型表达式 //Select 中为需要的形式: 如下面要返回Zoo,而不是string, 则 Select(e=>e) //最后的ToList是确定返回类型,根据实际需要 List<string> zoos = lists.Where(x => (x.Money + 10) < 70).Select(e=>e.Name).ToList(); foreach (var item in zoos) { Console.WriteLine(item); } //返回单个符合要求的 Console.WriteLine(lists.Find(x => x.Money==40 && x.Name.Contains("ger")).Type); }
结果:
3 tiger3 4 tiger4 5 cat tiger tiger1 tiger3 tiger4 lion Cat
https://www.cnblogs.com/dotnet261010/p/8278793.html