If i understand you well...
var a1 = Model.Candidates
.Select(d=> d.Candidate_ID)
.Take(5)
.ToList();
var a2 = Model.Candidates
.Select(d=> d.Candidate_ID)
.Skip(5)
.Take(5)
.ToList();
var a3 = Model.Candidates
.Select(d=> d.Candidate_ID)
.Skip(10)
.Take(5)
.ToList();
In case, you want to create custom pagination, you can achieve that by creating generic method. See:
void Main()
{
List<Candidate> Candidates = GetCandidates();
int j = 5;
for(int i = 0; i<Candidates.Count; i+=j)
{
var data = GetPortion<Candidate>(Candidates, d=>d.Candidate_ID, i, j).ToList();
data.Dump();
}
}
class Candidate
{
public Guid Candidate_ID {get; set;}
}
IEnumerable<T> GetPortion<T>(IEnumerable<T> list, Func<T, object> orderByField, int curr_val, int NoOfRecordsToGet) where T: class
{
return list.OrderBy(orderByField).Skip(curr_val).Take(NoOfRecordsToGet);
}
List<Candidate> GetCandidates()
{
List<Candidate> candies = new List<Candidate>();
for(int i = 0; i<28; i++)
candies.Add(new Candidate(){Candidate_ID = Guid.NewGuid()});
return candies;
}