【问题标题】:Group by a nested list of object based on date [closed]按基于日期的嵌套对象列表分组[关闭]
【发布时间】:2014-02-28 20:24:07
【问题描述】:

大家好,我有这样的课程:

   public class supervisorAnswerQuesttionPres
    {
        public string date { set; get; }
        public List<string> questionList { set; get; }
        public List<string> answerList { set; get; }
    }

我有一个查询返回这个类的列表

     List<PresentClass.supervisorAnswerQuesttionPres> temp
            = dbconnect.tblAnswerLists
                       .Where(i => i.StudentNum == studentNumber && i.username==objstu.Return_SupervisorUserName_By_StudentNumber(studentNumber))
                       .ToList() // <-- This will bring the data into memory.
                       .Select(i => new PresentClass.supervisorAnswerQuesttionPres
                           {
                               answerList = Return_Answer_List(studentNumber,i.dateOfAnswer.Value.Date),
                               questionList = Return_Question_List(studentNumber, i.dateOfAnswer.Value.Date),
                               date = ConvertToPersianToShow(i.dateOfAnswer.Value.Date)
                           })
                       .OrderByDescending(i => i.date)
                       .ToList();

所以我需要按 date 对列表 temp 进行分组,然后再次选择所有 3 列,即日期、问题列表、答案列表。

我只想在执行此查询后对结果进行分组 我正在使用 linq asp.net visual 2012

【问题讨论】:

  • 为什么string类型中有date,为什么没有DateTime
  • 您的问题是什么?如果您要求我们确定查询是什么,您尝试过什么?不要指望我们只是为您完成所有工作。表现出一些努力...
  • 因为我必须将其转换为转移到另一层
  • 不,我有查询,我只想如何对查询结果进行分组

标签: c# asp.net linq lambda


【解决方案1】:
var temp
        = dbconnect.tblAnswerLists
                   .Where(i => i.StudentNum == studentNumber && i.username==objstu.Return_SupervisorUserName_By_StudentNumber(studentNumber))
                   .ToList() // <-- This will bring the data into memory.
                   .Select(i => new PresentClass.supervisorAnswerQuesttionPres
                       {
                           answerList = Return_Answer_List(studentNumber,i.dateOfAnswer.Value.Date),
                           questionList = Return_Question_List(studentNumber, i.dateOfAnswer.Value.Date),
                           date = ConvertToPersianToShow(i.dateOfAnswer.Value.Date)
                       })
                   .GroupBy(i => i.date)
                   .OrderByDescending(i => i.Key)
                   .ToList();

temp 实际上是 List&lt;IGrouping&lt;string, PresentClass.supervisorAnswerQuesttionPres&gt;&gt; 类型。

【讨论】:

  • 所以我必须返回--supervisorAnswerQuesttionPres-- list
  • 如果你只返回一个supervisorAnswerQuesttionPres的平面列表,你怎么知道这些组是什么?
猜你喜欢
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2017-05-09
相关资源
最近更新 更多