我有两个清单.BeamElevations<Elevation>
和FloorElevations<Elevation>
.如何将这些合并到Elevations<Elevation>
列表中并根据他们使用Linq的Elevation进行排序?
Sel*_*enç 31
var result = list1.Concat(list2).OrderBy(x => x.Elevation).ToList();
Run Code Online (Sandbox Code Playgroud)
如果要删除重复项并获取一组唯一的元素,还可以使用Union
方法:
var result = list1.Union(list2).OrderBy(x => x.Elevation).ToList();
Run Code Online (Sandbox Code Playgroud)
为了使其正常工作,您需要在课堂上进行覆盖Equals
和GetHashCode
方法.
最初,您将它们合并如下:
Elevations=BeamElevations.Union(FloorElevations)
.ToList();
Run Code Online (Sandbox Code Playgroud)
然后
Elevations=Elevations.OrderBy(x=>x.Elevation)
.ToList();
Run Code Online (Sandbox Code Playgroud)
或者一步:
Elevations=BeamElevations.Union(FloorElevations)
.OrderBy(x=>x.Elevation)
.ToList();
Run Code Online (Sandbox Code Playgroud)
实现这一目标的另一种方法是使用 Concat
Elevations=BeamElevations.Concat(FloorElevations)
.OrderBy(x=>x.Elevation)
.ToList();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43095 次 |
最近记录: |