获取不同的值了名单,LT的;对象> [英] Get Distinct values out of List<Object>
本文介绍了获取不同的值了名单,LT的;对象>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个列表
包含束
类的实例。每个束
对象都有一个海拔
属性。
列表<光束GT;梁=新的List<光束GT; {BEAM1,BEAM2,...};
公共类束
{
公共双重提升;
}
现在我想创建一个列表<双>
包含不同的海拔高度。
例如如何编写接受梁列表如下
VAR BEAM1 =新梁{高程的方法= 320);
变种BEAM2 =新梁{高程= 320);
变种BEAM3 =新梁{高程= 640);
变种BEAM4 =新梁{高程= 0);
名单,LT;光束GT;梁=新的List<光束GT; {BEAM1,BEAM2,BEAM3,BEAM4};
和给出了这样的删除重复的海拔高度:
listOfElevations = {0,320640}
解决方案
1)使光束实现IComparable:
公共类梁:IComparable的
{
公共双重提升; //考虑这个不断变化的财产,顺便说一句。
公众诠释的CompareTo(obj对象){
如果(OBJ == NULL)回报1;
束流otherBeam = OBJ的光束;
返回this.Elevation.CompareTo(otherBeam.Elevation);
}
}
2)使用distinct():
VAR listOfElevations = Beams.Distinct()选择(X => x.Elevation)。.ToList();
I have a List
that contains instances of Beam
class. Each of these Beam
objects has an Elevation
property.
List<Beam> Beams = new List<Beam> {Beam1, Beam2, ...};
public class Beam
{
public double Elevation;
}
Now I want to create a List<double>
that contains distinct Elevations.
For example how to write a method that accepts the Beams list as below
var Beam1 = new Beam { Elevation = 320);
var Beam2 = new Beam { Elevation = 320);
var Beam3 = new Beam { Elevation = 640);
var Beam4 = new Beam { Elevation = 0);
List<Beam> Beams = new List<Beam> {Beam1, Beam2, Beam3, Beam4};
And gives this removing the duplicate elevations:
listOfElevations = {0, 320,640}
解决方案
1) Make Beam implement IComparable:
public class Beam : IComparable
{
public double Elevation; //consider changing this to property, btw.
public int CompareTo(object obj) {
if (obj == null) return 1;
Beam otherBeam = obj as Beam;
return this.Elevation.CompareTo(otherBeam.Elevation);
}
}
2) use Distinct():
var listOfElevations = Beams.Distinct().Select(x=> x.Elevation).ToList();
这篇关于获取不同的值了名单,LT的;对象>的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文