>有效地識別.NET中的唯一值
>>
從集合中提取獨特元素是經常的編程需求。 。 Distinct()
接受Distinct()
>,但直接使用lambda表達式進行此比較而不是本地支持。 IEqualityComparer
>
>使用IEqualityComparer
的簡潔方法
inline:IEqualityComparer
>
<code class="language-csharp">var distinctValues = myCustomerList.Distinct( EqualityComparer<Customer>.Create((c1, c2) => c1.CustomerId == c2.CustomerId) );</code>
替代:利用
和GroupBy
Select
>
更優雅的替代方案繞過了對顯式IEqualityComparer
的需求。 這種方法利用GroupBy
和Select
:
<code class="language-csharp">IEnumerable<Customer> filteredList = originalList .GroupBy(customer => customer.CustomerId) .Select(group => group.First());</code>
此將基於指定的密鑰(在這種情況下CustomerId
)分組元素,然後從每個組中選擇第一個項目,從而有效地過濾副本。 這為使用lambda表達式實現不同的值提供了一個更清潔,更可讀的解決方案。
以上是如何使用 Lambda 表達式在 .NET 中取得不同的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!