2017-06-05 53 views
-1

我有一組包含一組分數的對象的IEnumerable。 我需要在IEnumerable的末尾創建最後一個對象,它將定義Total Score。Linq返回對象列表中的一個屬性的交集

該對象包含相同的列,每個列都是列表中對象屬性的交集。例如:totalscore中的屬性將表示所有其他的交集,如果至少有一個失敗,那麼它應該呈現Fail。通行證只有在列表中的所有對象都過關分數

這是得分的定義:

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

我已經轉換了IEnumerable到一個列表,並添加這樣一個新項目:

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

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

* 1 - 這是我需要跨預測結果中的所有對象的相同屬性

+0

「return如果全部通過或失敗,如果全部失敗並且相同的未評級」如果屬性值是異構的,結果應該是什麼? – itsme86

+0

列表中的所有對象都包含相同的屬性,最後一個「總分」將僅顯示它們的交集。所有東西lilke通過&通過&失敗=失敗 – miguelmpn

+0

enum可以轉換爲整數:(int) NotRated == 0x01 – jdweng

回答

2

給定您的值的定義,並缺乏所需的結果如果值不相同,

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

完成,類似,但工作projectionResult.Aggregate(Score.NotRated,(ttlrst,rst)=> ttlrst | rst.IOTest);謝謝 – miguelmpn

相關問題