Linq返回对象列表中的一个属性的交集

时间:2017-06-05 17:22:07

标签: c# linq

我有一组IEnumerable包含一组Scores的一组对象。 我需要在IEnumerable的末尾创建一个最终对象来定义总分数。

此对象包含相同的列,每个列都是列表中对象属性的交集。 例如:totalscore中的属性将代表所有其他属性的交集,如果至少有一个失败,那么它应该呈现失败。仅当列表中的所有对象都具有“通过分数”

时才通过

这是分数定义:

public enum Score
{
    NotRated = 0x00,
    Pass = 0x01,
    Fail = 0x03
}

我已经将IEnumerable转换为List并添加了一个像这样的新项目:

projectedResult.Add(
            new
            {
                Title = "Total Result",

                IOTest = from rst in projectedResult
                         rst.IOTest ... #### *1 ####,
            }
        );

* 1 - 这是我需要在projectionResult

中所有对象的相同属性的交集

1 个答案:

答案 0 :(得分:2)

鉴于您对价值的定义,以及如果价值不相同而缺乏预期结果,

IOTest = (Score)projectedResult.Aggregate(0x00, (ttlrst, rst) => ttlrst | rst.IOTest )