首頁 > 後端開發 > C++ > 如何將lambda表達式用於枚舉對象的自定義不同()操作?

如何將lambda表達式用於枚舉對象的自定義不同()操作?

Linda Hamilton
發布: 2025-01-25 23:01:09
原創
172 人瀏覽過

How Can I Use Lambda Expressions for Custom Distinct() Operations on Enumerable Objects?

使用 Lambda 表達式自定義 Distinct() 操作

在處理可枚舉對象時,Distinct() 方法提供了一種直接去除重複值的方法。但是,對於需要自定義相等性檢查的對象,現有的 Distinct() 重載方法並不理想。

人們可能期望有一個重載方法接受 Lambda 表達式來定義相等性,例如:

<code class="language-c#">var distinctValues = myCustomerList.Distinct((c1, c2) => c1.CustomerId == c2.CustomerId);</code>
登入後複製

然而,這樣的重載方法在原生方法中並不存在。相反,必須使用 IEqualityComparer<T> 實例,這可能會冗長且繁瑣。

替代方案

為了實現所需的功能,可以結合使用 GroupBy()Select() 方法:

<code class="language-c#">IEnumerable<Customer> filteredList = originalList
  .GroupBy(customer => customer.CustomerId)
  .Select(group => group.First());</code>
登入後複製

這種方法根據 CustomerId 字段標識和分組項目。然後,First() 方法從每個組中選擇第一個項目,有效地去除了重複項。

以上是如何將lambda表達式用於枚舉對象的自定義不同()操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板