我有一个List<ReportObject>
并且希望能够基于与列表中第二个元素的某些其他属性匹配的一个元素的某些属性的相等性将列表的某些元素组合成一个元素。在这种情况下,我想用第二个元素的值更新第一个元素,然后返回一个仅包含“第一个元素”集合的列表。
也许 GroupBy(或一般的 LINQ)在这里不是正确的解决方案,但它看起来确实比执行传统foreach
循环和更新第二个列表要干净得多。我想要的是这样的:
List<ReportObject> theList = new List<ReportObject>()
{ new ReportObject() { Property1 = "1", Property2 = "2" },
new ReportObject() { Property1 = "2", Property2 = "3" }
new ReportObject() { Property1 = "1", Property2 = "3" } };
List<ReportObject> newList = new List<ReportObject>();
for(int i = 0; i < theList.Count; i++)
{
for(int j = i + 1; i < theList.Count; j++)
{
if (theList[i].Property1 == theList[j].Property2)
{
theList[i].Property2 = theList[j].Property2);
newList.Add(theList[i]);
theList.RemoveAt(j);
}
}
}
return newList;