我有一个列表:List<NXRoute> NXRouteList = new List<NXRoute>();
在此列表中,每个“ NXRoute”都有一个属性:
DestinationSignal
(是一个字符串)Path
,代表一个列表(List<Path> pathList = new List<Path>();
)我想根据属性NXRouteList
比较DestinationSignal
的元素,所以:
如果找到两个具有相同DestinationSignal
值的元素
==>在删除重复元素之前,我想将其Path
列表的元素添加到另一个元素(具有相同{{1}的元素)的Path
列表中}
对C#编程很陌生,我真的不知道该怎么实现
答案 0 :(得分:1)
也许此代码可以为您提供帮助。此方法创建新的NXRoute列表,在DestinationSignal上没有重复项。调用.SelectMany方法会将重复的DestinationSignal值的所有路径聚合到1个新的NXRoute记录中。
public List<NXRoute> GetAllNXRoutesWithoutDuplicates(List<NXRoute> list)
{
var nxRoutesWithSameDestinationSignals = list.GroupBy(x => x.DestinationSignal);
return nxRoutesWithSameDestinationSignals.Select(group => new NXRoute
{
DestinationSignal = group.Key,
Path = group.SelectMany(x => x.Path).ToList()
}).ToList();
}
答案 1 :(得分:0)
我会implement IComparable
换NXRouteList
。您可以实施CompareTo
来检查两个实例的DestinationSignal
属性是否相等。