比较列表 c 中两个元素的属性#

我有一个列表 :List<NXRoute> NXRouteList = new List<NXRoute>();

在此列表中,每个“NXRoute”都有一个属性:

  • DestinationSignal(它是一个字符串)

  • Path它表示一个列表 (List<Path> pathList = new List<Path>();)

我想根据属性比较元素,所以:NXRouteListDestinationSignal

  • 如果找到两个具有相同值的元素DestinationSignal

    ==>在删除重复元素之前,我想将其列表中的元素添加到另一个元素(具有相同元素的那个)的列表中PathPathDestinationSignal

作为c#编程的新手,我真的不知道如何实现它


开心每一天1111
浏览 131回答 2
2回答

尚方宝剑之说

也许这段代码可以帮助你。此方法将创建在目标信号上没有重复项的 NXRoutes 的新列表。调用 。SelectMany 方法将重复目标信号值的所有路径聚合到 1 条新的 NXRoute 记录中。public List<NXRoute> GetAllNXRoutesWithoutDuplicates(List<NXRoute> list){&nbsp; &nbsp; var nxRoutesWithSameDestinationSignals = list.GroupBy(x => x.DestinationSignal);&nbsp; &nbsp; return nxRoutesWithSameDestinationSignals.Select(group => new NXRoute&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; DestinationSignal = group.Key,&nbsp; &nbsp; &nbsp; &nbsp; Path = group.SelectMany(x => x.Path).ToList()&nbsp; &nbsp; }).ToList();}

哈士奇WWW

我将实现&nbsp;IComparable&nbsp;for .您可以实现检查两个实例的属性是否相等。NXRouteListCompareToDestinationSignal
打开App,查看更多内容
随时随地看视频慕课网APP