首页 >后端开发 >C++ >如何使用lambda表达式在.NET中获得不同的值?

如何使用lambda表达式在.NET中获得不同的值?

Linda Hamilton
Linda Hamilton原创
2025-01-25 23:06:10790浏览

How Can I Use Lambda Expressions to Get Distinct Values in .NET?

>有效地识别.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>
这种方法虽然功能性,但会感到有些麻烦。

替代:利用

GroupBySelect>

>

更优雅的替代方案绕过了对显式IEqualityComparer的需求。 这种方法利用GroupBySelect

>
<code class="language-csharp">IEnumerable<Customer> filteredList = originalList
  .GroupBy(customer => customer.CustomerId)
  .Select(group => group.First());</code>

此将基于指定的密钥(在这种情况下CustomerId)分组元素,然后从每个组中选择第一个项目,从而有效地过滤副本。 这为使用lambda表达式实现不同的值提供了一个更清洁,更可读的解决方案。

以上是如何使用lambda表达式在.NET中获得不同的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn