【发布时间】:2014-05-03 07:18:30
【问题描述】:
这里我有一个Column 对象的列表。每个Column 对象都有几个属性,这些属性可能是唯一的,也可能不是。这是我到目前为止编写的示例代码。如何从columns 列表中删除重复项,以便在最终列表中只有 c1 和 c2?
Program.cs
var pc1 = new PartialColumn { Section = "C50" };
var pc2 = new PartialColumn { Section = "C40" };
var c1 = new Column
{
X = 0,
Y = 0,
StartElevation = 0,
EndElevation = 310,
FoundationHeight = 60,
ListOfPartialColumns = new List<PartialColumn> {pc1}
};
var c2 = new Column
{
X = 600,
Y = 0,
StartElevation = 0,
EndElevation = 630,
FoundationHeight = 60,
ListOfPartialColumns = new List<PartialColumn> { pc1, pc2 }
};
var c3 = new Column
{
X = 600,
Y = 0,
StartElevation = 0,
EndElevation = 630,
FoundationHeight = 60,
ListOfPartialColumns = new List<PartialColumn> { pc1, pc2 }
};
var columns = new List<Column> {c1, c2, c3};
PartialColumn.cs
public class PartialColumn
{
public string Section { get; set; }
}
Column.cs
public class Column
{
public double StartElevation { get; set; }
public double EndElevation { get; set; }
public double X { get; set; }
public double Y { get; set; }
public List<PartialColumn> ListOfPartialColumns { get; set; }
public double FoundationHeight { get; set; }
}
更新:
我想从列列表中删除重复项。如您所见,c2 和 c3 具有相同的属性。我想删除 c3。
【问题讨论】:
-
你应该根据你想要对这些对象进行分组来说明。实际上,通过对项目进行分组,您不会减少元素数量。事实并非如此。您应该使用
where过滤某些项目。 -
@TolgaEvcimen 我更新了问题。
-
@CameronMacFarland 问题是我有另一个 List
作为我的 Column类的属性,这让我感到困惑。