Я сбил свои классы как можно проще. Ниже приведены мои занятия.Добавление элементов в список с использованием 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
, так что я могу показать его в списке, чтобы как Question
QuestionFinalScore
в конечном итоге, что это такое.
Может кто-нибудь указать мне на то, что мне нужно сделать, чтобы добавить все эти элементы в моей List<QuestionData>
собственности, сгруппированные по QuestionID
и Question
@ GiladGreen Если я не совсем ошибаюсь 'fGroup.ToList()' возвращает 'List' of QuestionDatas, который достиг QuestionFinalScore в данной группе. Я дважды проверил свой код, и он отлично работает. Но это был довольно долгий день, так что вполне возможно, что я не понял, что должен состоять из «ListAchived». –
haindl
Жаль, что это была моя ошибка. Я думал, что «FinalSet» имеет тип 'QuestionInfo'. Ваше решение с простым '.ToList()' является тем, что необходимо –
Это сработало. Благодарю. – AVK