var query = from n in Runner.Defects orderby n.Assembly.Name.FullName group n by n.Rule.Name into a select new { RuleName = a.Key, // here I'd like at have Problem and Solution (both properties of n.Rule) Value = from o in a group o by o.Target.ToString () into r select new { Target = r.Key, Value = r } };