我有一个linq列表选择问题
如果有对象集合/列表,如何从该集合/列表中选择不同的记录 例如,我正在执行以下操作,但两者的计数相同:我有一个linq列表选择问题,linq,select,Linq,Select,如果有对象集合/列表,如何从该集合/列表中选择不同的记录 例如,我正在执行以下操作,但两者的计数相同: var list = List<Order>; list.add( new Order { Status = "Completed" }); list.add( new Order { Status = "Completed" }); list.add( new Order { Status = "Completed" }); list.add( new Order {
var list = List<Order>;
list.add( new Order { Status = "Completed" });
list.add( new Order { Status = "Completed" });
list.add( new Order { Status = "Completed" });
list.add( new Order { Status = "Processing" });
var = completed = list.Select(x => x.Status == "Completed").Count();
var = Processing = list.Select(x => x.Status == "Processing").Count();
var list=list;
添加(新订单{Status=“Completed”});
添加(新订单{Status=“Completed”});
添加(新订单{Status=“Completed”});
添加(新订单{Status=“Processing”});
var=completed=list.Select(x=>x.Status==“completed”).Count();
var=Processing=list.Select(x=>x.Status==“Processing”).Count();
谢谢嗯,有两个问题和一个简化:
- 变量声明不应该在
和变量名之间有var
=
- 对于筛选,应使用
而不是Where
Count
- 使用
重载会更简单,它首先接受一个谓词Count
嗯,有两个问题和一个简化:
- 变量声明不应该在
和变量名之间有var
=
- 对于筛选,应使用
而不是Where
Count
- 使用
重载会更简单,它首先接受一个谓词Count
您得到的计数是相同的,因为您正在创建由
true
和false
值组成的结果,但当您对它们进行计数时,它们仍然与集合中的项目数量相同
您应该使用Where
而不是Select
,或者只需将条件放在计数中即可:
int completed = list.Count(x => x.Status == "Completed");
int processing = list.Count(x => x.Status == "Processing");
您得到的计数是相同的,因为您正在创建由true
和false
值组成的结果,但当您对它们进行计数时,它们仍然与集合中的项目数量相同
您应该使用Where
而不是Select
,或者只需将条件放在计数中即可:
int completed = list.Count(x => x.Status == "Completed");
int processing = list.Count(x => x.Status == "Processing");
int completed = list.Count(x => x.Status == "Completed");
int processing = list.Count(x => x.Status == "Processing");