2016-10-05 2 views
1

Я сбил свои классы как можно проще. Ниже приведены мои занятия.Добавление элементов в список с использованием Linq

public class QuestionData 
{ 
    property QuestionID int {get; set;} 
    property Question String {get; set;} 
    property QuestionScore int {get; set;} 
    <!---Few More Properties ----!> 
} 
public class QuestionInfo 
{ 
    property QuestionID int {get; set;} 
    property Question String {get; set;} 
    property QuestionFinalScore int {get; set;} 
    property List<QuestionData> ListAchieved {get; set;} 
} 

Ниже мой пример данных

Question | QuestionID | QuestionScore 
    Q1 |  1  |  10 
    Q1 |  1  |  20 
    Q2 |  2  |  10 
    Q2 |  2  |  -5 

После прохождения группы в Linq и с ниже Query

List<QuestionData> FinalSet = // Filled with Data Here 
IEnumerable<QuestionInfo> datapoints = from f in FinalSet 
    group f by new { f.QuestionID, f.Question } into fGroup 
    select new QuestionInfo() 
    { 
     QuestionID = fGroup.Key.QuestionID 
     , Question = fGroup.Key.Question, 
     , QuestionFinalScore = fGroup.Sum(g => g.QuestionScore) 
     //, ListAchieved = This is where IDK what to do :(
    }; 

Ниже мой выход

Question | QuestionID | QuestionScore 
    Q1 |  1  |  30 
    Q2 |  2  |  5 

Теперь, если вы видите, мой класс QuestionInfo, мне нужно добавить все QuestionData в моей собственности Вопрос ListAchieved, так что я могу показать его в списке, чтобы как QuestionQuestionFinalScore в конечном итоге, что это такое.

Может кто-нибудь указать мне на то, что мне нужно сделать, чтобы добавить все эти элементы в моей List<QuestionData> собственности, сгруппированные по QuestionID и Question

ответ

3

Я думаю, что вы хотите сделать это:

, ListAchieved = fGroup.ToList() 

Это ставит все элементы одной группы в список.

+0

@ GiladGreen Если я не совсем ошибаюсь 'fGroup.ToList()' возвращает 'List ' of QuestionDatas, который достиг QuestionFinalScore в данной группе. Я дважды проверил свой код, и он отлично работает. Но это был довольно долгий день, так что вполне возможно, что я не понял, что должен состоять из «ListAchived». – haindl

+1

Жаль, что это была моя ошибка. Я думал, что «FinalSet» имеет тип 'QuestionInfo'. Ваше решение с простым '.ToList()' является тем, что необходимо –

+0

Это сработало. Благодарю. – AVK

Смежные вопросы