我覺得自己像一個屁股踢腿比賽中的單腿男人......我需要添加一個屬性到我的LINQ數據集中,該數據集根據子集合的屬性提供摘要並然後壓扁我的數據。 (我正在創建一個.rdlc數據集)。我終於想出瞭如何將我的數據變平,但我無法弄清楚如何根據哪一組審閱者提供他們的評估來推導出價值。總結基於子集合的屬性
我有一些評估,我需要根據審稿小組總結一個結果審稿屬於:
- 如果任何一個評審組的評估是「大問題」,返回「大問題」。
- 如果所有評估都說「無問題」,則返回「無問題」。
如果沒有評估是「大問題」,並且至少有一個是空白,則返回null。
下面是一個樣本集我創建的希望證明什麼,我說的是:
public List<SummaryReport> CreateReport() { return Get() .SelectMany(rev => rev.Assessments, (rev, ass) => new { rev, ass }) .Select(x => new SummaryReport { ReviewID = x.rev.ReviewID, ReviewerID = x.ass.Reviewer.ReviewerID, Assessment = x.ass.Assessment, ReviewGroupID = x.ass.Reviewer.ReviewGroup.ReviewGroupID, GroupAssessment = "Need to derive this value!!??!?" }) .ToList(); } public List<Review> Get() { ReviewGroup GrpOne = new ReviewGroup(){ ReviewGroupID=1}; ReviewGroup GrpTwo = new ReviewGroup(){ ReviewGroupID=2}; ReviewGroup GrpThree = new ReviewGroup(){ ReviewGroupID=3}; ReviewerInfo userOne = new ReviewerInfo() { ReviewerID=1, ReviewGroup = GrpOne}; ReviewerInfo userTwo = new ReviewerInfo() { ReviewerID=2, ReviewGroup = GrpTwo}; ReviewerInfo userThree = new ReviewerInfo() { ReviewerID=3, ReviewGroup = GrpTwo}; ReviewerInfo userFour = new ReviewerInfo() { ReviewerID=4, ReviewGroup = GrpThree}; Assessment asOne = new Assessment() { AssessmentID=1, Reviewer=userOne, Assessment="Big Problem"}; Assessment asTwo = new Assessment() { AssessmentID=2, Reviewer=userTwo, Assessment="No Problem"}; Assessment asThree = new Assessment() { AssessmentID=3, Reviewer=userThree, Assessment="No Problem"}; Assessment asFour = new Assessment() { AssessmentID=4, Reviewer=userFour, Assessment=""}; Assessment asFive = new Assessment() { AssessmentID=5, Reviewer=userOne, Assessment="No Problem"}; Assessment asSix = new Assessment() { AssessmentID=6, Reviewer=userTwo, Assessment="No Problem"}; Assessment asSeven = new Assessment() { AssessmentID=7, Reviewer=userThree, Assessment="No Problem"}; Assessment asEight = new Assessment() { AssessmentID=8, Reviewer=userFour, Assessment="No Problem"}; Assessment asNine = new Assessment() { AssessmentID=9, Reviewer=userOne, Assessment="No Problem"}; Assessment asTen = new Assessment() { AssessmentID=10, Reviewer=userTwo, Assessment=""}; Assessment asEleven = new Assessment() { AssessmentID=11, Reviewer=userThree, Assessment="No Problem"}; Assessment asTwelve = new Assessment() { AssessmentID=12, Reviewer=userFour, Assessment="No Problem"}; List<Assessment> firstList = new List<Assessment>() { asOne, asTwo, asThree, asFour }; List<Assessment> secondList = new List<Assessment>() {asFive, asSix, asSeven, asEight}; List<Assessment> thirdList = new List<Assessment>() { asNine, asTen, asEleven, asTwelve }; Review revOne = new Review() { ReviewID=1, Assessments=firstList }; Review revTwo = new Review() { ReviewID=2, Assessments = secondList }; Review revThree = new Review() { ReviewID = 3, Assessments = thirdList }; List<Review> reviews = new List<Review>() { revOne, revTwo, revThree }; return reviews; } public class SummaryReport { public int ReviewID { get; set; } public int ReviewerID { get; set; } public string Assessment { get; set; } public int ReviewGroupID { get; set; } public string GroupAssessment { get; set; } } public class Review { public int ReviewID { get; set; } public virtual List<Assessment> Assessments { get; set; } public Review() { } } public class Assessment { public int AssessmentID { get; set; } public ReviewerInfo Reviewer { get; set; } public string Assessment { get; set; } } public class ReviewerInfo { public int ReviewerID { get; set; } public ReviewGroup ReviewGroup { get; set; } } public class ReviewGroup { public int ReviewGroupID { get; set; } }
樣本數據的預期輸出是什麼? – Aducci
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
@Aducci - 我實際上正在嘗試創建一個預期的輸出結果,但在結束之前我看到了一個答案,因此我停下了腳步。謝謝! – Eclipse