私はレコードをグループ化する必要があります。たとえば、私は150のレコードを持っており、5つのグループ、各グループの30のレコードでそれらを取得する必要があります。グループ内のレコードを取得するLINQ
誰でも私にこれを達成する方法を教えてもらえますか?
ありがとうございます。
私はレコードをグループ化する必要があります。たとえば、私は150のレコードを持っており、5つのグループ、各グループの30のレコードでそれらを取得する必要があります。グループ内のレコードを取得するLINQ
誰でも私にこれを達成する方法を教えてもらえますか?
ありがとうございます。
var groups = myRecords.Select((e, i) => new { Item = e, Grouping = (i/5) }).GroupBy(e => e.Grouping);
このコードは問題を解決するかもしれませんが[説明を含む](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-回答)は本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。 –
var g1 = records.Take(30);
var g2 = records.Skip(30).Take(30);
...
番号150と30は一例であれば、あなたは簡単にループ内で(pageIndexパラメータ* pageSizeを).Take(pageSizeを)をスキップ置くことができます。
もちろん、これは 'records'が確定的な順序であることを前提としています –
@RowlandShawまたは順序は関係ありません:) – mayu
' g2' *確定的な順序でなければ 'g1'の結果を繰り返すことができます、結果が返されないバグが発生します。 –
あなたはまた、MoreLinqで簡単にそれを行うことができます。
var items = list.Batch(30);
そこには特定のグループは、プロパティによってませんし、ちょうどこの後、特定のサイズでそれらをしたい場合:
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;
}
}
ありがとうHassan Kahn
異なる部門を持つリスト名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;
}
}
グループ化する必要があるレコードのデータ構造はどのように見えますか?無差別にグループ化する必要がありますか(例:1-30,31-60,61-90など)、グループ化するフィールドがありますか? – pieperu
新しいグループを作成するにはどうすればよいですか?もしあなたが10の商品を持っていたら?この場合、あなたはいくつのグループを望みますか?あなたが達成したいことは明確ではありません。 – Dieterg
GroupByは行く方法です。もっと精巧な答えをしたいですか?もっと精巧な質問を書いてください。 – Alex