如何从一个属性获取非重复值的列表

时间:2017-01-06 20:46:23

标签: c# linq

我有public ActionResult AssignDevice() { List<Device> _dev = new List<Device>(); Device dev1 = new Device(); dev1.Brand = "Samasung"; _dev.Add(dev1); Device dev2 = new Device(); dev1.Brand = "SONY"; _dev.Add(dev2); return View(_dev); } ,其中包含属性List<Employee> employees。我想在CategoryID中提取这些类别。

我试过了,但我得到了重复的类别:

List<int> employeeCategories

我想要所有这些类别但不重复。

我一直试图这样做:

List<int> employeeCategories = employees.Select(x => x.CategoryID).ToList();

是否有更简单,更清洁的方法来实现这一目标?我是否正确使用了List<int> employeeCategories = employees.GroupBy(x => x.CategoryID).Select(x => x.First()).Select(x => x.CategoryID).ToList(); 方法?

提前致谢。

1 个答案:

答案 0 :(得分:6)

这是Distinct()的用途。它会删除所有重复的条目。

List<int> employeeCategories = employees.Select(x => x.CategoryID).Distinct().ToList();