public static void Main()
var group1 = Guid.NewGuid();
var group2 = Guid.NewGuid();
Type = SurveyQuestion.QuestionType.MultipleChoice,
Type = SurveyQuestion.QuestionType.MultipleChoice,
Type = SurveyQuestion.QuestionType.MultipleChoice,
Type = SurveyQuestion.QuestionType.MultipleChoice,
Type = SurveyQuestion.QuestionType.MultipleChoice
Type = SurveyQuestion.QuestionType.MultipleChoice,
var groups = questions.GroupBy (q => q.GroupId);
foreach (var @group in groups)
Console.WriteLine ("Group: {0}", @group.Key .HasValue ? @group.Key.ToString() : "<null>");
Console.WriteLine (new String('*', 50));
foreach(var question in @group.OrderBy (g => g.Order))
Console.WriteLine ("Id: {0}, Order: {1}", question.Id, question.Order);
public class SurveyQuestion
public Guid Id { get; set; }
public Guid? GroupId { get; set; }
public QuestionType Type { get; set; }
public int Order { get; set; }
public enum QuestionType {