如何在LINQ中获取值列表

时间:2013-05-23 07:54:32

标签: c# asp.net-mvc linq

我对LINQ有一个奇怪的问题,我希望有人可以向我解释发生了什么。

我有一个模特:

public class AnswerModel
{
   public string Question { get; set; }
   public IEnumerable<Answer> Answers { get; set; }
}

我想根据这样的视图中的问题获得所有答案的列表:

q1 a1a2a3a4

q2 a1a2a3a4

and so on

3 个答案:

答案 0 :(得分:5)

var q = db.Answers.Where(a => a.Question == "q1")
       .SelectMany(a => a.Answers).ToList();

答案 1 :(得分:0)

var dic = list.ToDictionary<string, string>(t=>t.Question, t=> t.Answers == null ? string.Empty : String.Join(',', t.Answers.Select(t=>t.Name));

它将是:

q1 a1,a2,a3,a4

q2 a1,a2,a3,a4

你可以将','替换为String.Empty。

答案 2 :(得分:0)

也许这个?

var view = AnswerModels
    .Select(am => new
                      {
                          am.Question, 
                          Answers = string.Join("", am
                                                    .Answers
                                                    .Select(a => a.ToString())
                                                    .ToArray())
                      });