如何使用linq避免下拉列表中的重复项

本文关键字:下拉列表 何使用 linq | 更新日期: 2023-09-27 18:10:11

我使用linq编写查询,每当我在表单中创建新条目时,性别下拉列表在该列表中生成重复项。如果我创建2个新条目2个这样的选项。(男女男性男性].我的项目是visual studio-angularJS-web api-linq-sql-entity framework

如何使用linq避免下拉列表中的重复项

类似

var filteredList = originalList
  .GroupBy(x => x.Gender)
  .Select(group => group.First());

Linq有一个Distinct()方法,它将使用默认的相等方法来确保每个项只返回一个副本。

var items = new List<string>{'bob', 'frank', 'bob', 'jim'};
var distinctItems = items.Distinct();
//items should have 3 items, bob frank and jim

然而,如果你正在处理对象,默认的相等方法将是引用-这意味着你将获得每个对象的一个副本,但具有相同字段的两个对象将不被认为是相等的。要解决这个问题,你需要重载Equals和GetHashCode。

另外,不保证订单项将从Distinct中出来。