using System; using System.Collections.Generic; using System.Linq; public class Test { public static void Main() { var dict = new Dictionary() { {"question1", "7"}, {"question1_comment", "pretty difficult"}, {"question2", "9"}, {"question2_comment", ""}, {"question3", "5"}, {"question3_comment", "Never on time"}, }; var list = dict .Where(x => !x.Key.Contains("comment")) .Select(x => new Question() { QuestionId =x.Key, Answer = x.Value, Comment = dict.Single(y => y.Key == String.Concat(x.Key,"_comment")).Value }) .ToList(); foreach (var item in list) Console.WriteLine(String.Format("{0} - {1} - {2}", item.QuestionId, item.Answer, item.Comment)); } } public struct Question { public string QuestionId { get; set; } public string Answer { get; set; } public string Comment { get; set; } }