You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求与给定JavaScript去重代码等效的C#实现方案

等效的C#实现方式

假设我们有一个包含Age属性的实体类,比如:

public class Person
{
    public int Age { get; set; }
}

并拥有一个该类型的集合(数组或List<Person>),以下是两种等效实现:

方式一:使用LINQ的Distinct()(简洁推荐)

这是最符合C#惯用写法的实现,效果和你提供的JS代码一致,会保留Age值第一次出现的顺序:

var uniqueAges = array.Select(item => item.Age).Distinct().ToList();

方式二:完全复刻JS的过滤逻辑

如果要严格对应原JS代码的执行步骤(先提取所有Age值,再过滤出首次出现的元素),可以这样写:

var ageList = array.Select(item => item.Age).ToList();
var uniqueAges = ageList.Where((value, index) => ageList.IndexOf(value) == index).ToList();

说明

  • 两种写法最终都会得到集合中所有Age属性的唯一值列表,且保留值第一次出现的顺序
  • 如果你的集合是数组类型(比如Person[] array),直接调用上述LINQ方法即可,需确保代码顶部引入了using System.Linq;

内容的提问来源于stack exchange,提问作者user19305733

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:15:59