我有两节课。
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
我有上述课程的数据,请查看以下内容。
List<Employee> lstEmployee = new List<Employee>();
lstEmployee.Add(new Employee() { FirstName = "Ronak", LastName = "Patel" });
lstEmployee.Add(new Employee() { FirstName = "Ronak", LastName = "Patel" });
lstEmployee.Add(new Employee() { FirstName = "Sanjay", LastName = "Patel" });
lstEmployee.Add(new Employee() { FirstName = "Ronak", LastName = "Patel" });
lstEmployee.Add(new Employee() { FirstName = "Sanjay", LastName = "Patel" });
lstEmployee.Add(new Employee() { FirstName = "Ronak", LastName = "Patel" });
lstEmployee.Add(new Employee() { FirstName = "Mohan", LastName = "Patel" });
我希望过滤器在通用列表上方并绑定到下面的结构类中。
class CountEmployeeName
{
public string FirstName { get; set; }
public int CountFirstName { get; set; }
}
我希望绑定CountEmployeeName类对象,如上面的示例所示。
FirstName CountFirstName
Ronak 4 (Ronak is 4 time in above Employee class list)
Sanjay 2 (Sanjay is 4 time in above Employee class list)
Mohan 1 (Mohan is 4 time in above Employee class list)
我想根据Employee List的给定数据绑定CountEmployeeName类的通用列表,如上面的输出。
答案 0 :(得分:3)
使用linq group by
然后在select
项目中使用第二种类型:
from item in lstEmployee
group item by item.FirstName into grouping
select new CountEmployeeName
{
FirstName = grouping.Key,
CountFirstName = grouping.Count()
}
在方法语法中,它将如下所示:
lstEmployee.GroupBy(item => item.FirstName)
.Select(grouping => new CountEmployeeName {
FirstName = grouping.Key,
CountFirstName = grouping.Count()
});
请注意,我建议将CountFirstName
更改为int
而不是string