using System.Collections.Generic;
public static void Main(string[] args)
var list = new List<PoolUser>();
list.Add(new PoolUser { Id = 900, PoolQID = 1, PoolAID = 1, UserID = 100 });
list.Add(new PoolUser { Id = 901, PoolQID = 1, PoolAID = 2, UserID = 101 });
list.Add(new PoolUser { Id = 902, PoolQID = 1, PoolAID = 2, UserID = 102 });
list.Add(new PoolUser { Id = 903, PoolQID = 1, PoolAID = 3, UserID = 103 });
list.Add(new PoolUser { Id = 904, PoolQID = 1, PoolAID = 3, UserID = 104 });
list.Add(new PoolUser { Id = 905, PoolQID = 1, PoolAID = 3, UserID = 105 });
list.Add(new PoolUser { Id = 906, PoolQID = 1, PoolAID = 4, UserID = 106 });
list.Add(new PoolUser { Id = 907, PoolQID = 1, PoolAID = 4, UserID = 107 });
list.Add(new PoolUser { Id = 908, PoolQID = 1, PoolAID = 4, UserID = 108 });
list.Add(new PoolUser { Id = 909, PoolQID = 1, PoolAID = 4, UserID = 109 });
list.Add(new PoolUser { Id = 910, PoolQID = 2, PoolAID = 1, UserID = 110 });
list.Add(new PoolUser { Id = 911, PoolQID = 2, PoolAID = 1, UserID = 111 });
list.Add(new PoolUser { Id = 912, PoolQID = 2, PoolAID = 1, UserID = 112 });
list.Add(new PoolUser { Id = 913, PoolQID = 3, PoolAID = 1, UserID = 113 });
var questionAnswers = list.Where(elem => elem.PoolQID == questionId);
int questionAnswersCount = questionAnswers.Count();
var answersPrecentage = questionAnswers
.GroupBy(elem => elem.PoolAID)
.ToDictionary(grp => grp.Key, grp => (grp.Count() * 100.0 / questionAnswersCount));
foreach (var answerPrecentage in answersPrecentage)
Console.WriteLine("Answer#{0} - {1}%", answerPrecentage.Key, answerPrecentage.Value);
public partial class PoolA
public int Id { get; set; }
public string Answer { get; set; }
public string QuestionID { get; set; }
public partial class PoolQ
public int Id { get; set; }
public string Question { get; set; }
public string AnswerID { get; set; }
public string Status { get; set; }
public string StartDate { get; set; }
public string EndDate { get; set; }
public partial class PoolUser
public int Id { get; set; }
public int PoolQID { get; set; }
public int PoolAID { get; set; }
public int UserID { get; set; }