簡體   English   中英

如何使用 linq 避免下拉列表中的重復項?

[英]How to avoid the duplicates in drop-down list by using linq?

我正在使用 linq 編寫查詢,每當我在表單中創建新條目時,性別下拉列表都會在該列表中生成重復項。如果我創建 2 個新條目 2 個這樣的選項。 【男女男男】。 我的項目是visual studio-angularJS-web api-linq-sql-entity 框架。

就像是

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 中出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM