我正在使用linq来编写查询,每当我在表单中创建一个新条目时,性别下拉列表就会在该列表中生成重复项。如果我创建2个新条目2个选项,就像这样。 [男 女 男 男 ]。 我的项目是visual studio-angularJS-web api-linq-sql-entity framework。
答案 0 :(得分:2)
类似
var filteredList = originalList
.GroupBy(x => x.Gender)
.Select(group => group.First());
答案 1 :(得分:0)
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。