У меня есть требование, по которому мне нужно сгруппировать записи. Например, у меня 150 записей, и мне нужно разбить их на 5 групп, по 30 записей в каждой группе.
Может ли кто-нибудь сообщить мне, как я могу это сделать?
Заранее спасибо.
У меня есть требование, по которому мне нужно сгруппировать записи. Например, у меня 150 записей, и мне нужно разбить их на 5 групп, по 30 записей в каждой группе.
Может ли кто-нибудь сообщить мне, как я могу это сделать?
Заранее спасибо.
var g1 = records.Take(30);
var g2 = records.Skip(30).Take(30);
...
Если числа 150 и 30 являются всего лишь примером, вы можете легко поместить Skip (pageIndex * pageSize) .Take (pageSize) в цикл.
Если нет определенной группы по свойствам и вы просто хотите, чтобы они были определенного размера, тогда это:
static class LinqExtensions
{
public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
{
int i = 0;
var splits = from item in list
group item by i++ % parts into part
select part.AsEnumerable();
return splits;
}
}
Спасибо Хасану Кану
Предположим, у вас есть список с именем EmployeeList, имеющий разные отделы. поэтому вам нужно сгруппировать их по отделам сотрудников
public class Employee
{
public string Name { get; set; }
public string Department { get; set; }
}
public class EmployeeDepartMentList
{
public string DepartMentName {get;set; }
public List<Employee> EmployeeList { get; set; }
}
public class FinalResult
{
public List<EmployeeDepartMentList> GetEmployeesByDepartment()
{
List<Employee> EmployeeList = new List<Employee>();
var Model = EmployeeList.Select(x => x.Department).Distinct().Select(x => new EmployeeDepartMentList
{
DepartMentName = x,
EmployeeList = EmployeeList.Where(y => y.Department == x).ToList()
}).ToList();
return Model;
}
}
records
находятся в определенном порядке 21.11.2016g2
мог повторить результаты изg1
, если они не в определенном порядке, поэтому вы получаете ошибку, что некоторые результаты не возвращаются. 21.11.2016