首页 > 解决方案 > 删除具有相同属性的列表

问题描述

我有一个对象列表。
每个对象都有 3 个属性。
有没有一种好方法来检查获取属性相同的双重对象。

var upperT = dimensionList.GroupBy(x => x.UpperMetricToleranceValue).Select(x => x.First()).ToList();
var sizeT = dimensionList.GroupBy(x => x.ComputedSize).Select(x => x.First()).ToList();
var lowerT = dimensionList.GroupBy(x => x.LowerMetricToleranceValue).Select(x => x.First()).ToList();

foreach (var dimension in dimensionList)
{
    foreach (var upper in upperT)
    {
        foreach (var lower in sizeT)
        {
            foreach (var size in lowerT)
            {
                if (DELETE HERE IF SAME)
                {

                }
            }
        }
    }
}

所以我认为这不是使用它的好方法。
我不想使用像 moreLinq 这样的第三方库

标签: c#listlinq

解决方案


不要使用单个属性进行分组,而是一次使用三个属性:

var unique = dimensionList.GroupBy(x => new {UpperMetricToleranceValue=x.UpperMetricToleranceValue, ComputedSize=x.ComputedSize, LowerMetricToleranceValue=x.LowerMetricToleranceValue}).Select(g => g.First());

推荐阅读