2016-12-07 7 views
0

このネストされたグループ化はどのようにして剃刀のように表示できますか?かんたんビューでlinqを使用してGroupByを実装する方法

これは、私はあなたがグループ化されたデータが欲しいので、私はあなたを示唆ビュー

+0

'.ToList()'を2回行う必要はありません。しかし、どのような場合でも、 '.ToDictionary()' - '.GroupBy()'は、IEnumerable > 'を返すようにデータをグループ化します。 –

+0

model-view-controllerタグそのパターンについての質問ですASP.NET-MVCの実装には特定のタグがあります。 –

答えて

1

foreachループを実装する方法がわからないしかし、私は

コントローラ

public ActionResult SeniorityList() 
{ 
    var employee = db.Employees.GroupBy(f => f.Facility.FacilityName).ToList(); 
    return View(employee.ToList()); 
} 

を試してきたものですそのための新しいクラスを作成する

public class GroupedItem 
{ 
    public string GroupName { set; get; } 
    public IEnumerable<Employee> Items { set; get; } 
} 

Nあなたのdb.EmployeesコレクションでGroupByメソッドを使用し、その結果をGroupedItemクラスオブジェクトのコレクションに投影することができます。

var grouped = db.Employees 
       .GroupBy(f => f.Facility.FacilityName,i=>i, 
           (key,v)=>new GroupedItem { GroupName = key,Items = v}) 
       .ToList(); 
return View(grouped); 

grouped変数の型はGroupedItemのリストになりますと、私たちはビューにそれを渡しています。だからあなたのビューは、GroupedItemクラスのコレクションに強く型付けされていることを確認してください。

@model IEnumerable<GroupedItem> 
@foreach (var group in Model) 
{ 
    <h3>@group.GroupName</h3> 
    foreach (var p in group.Items) 
    { 
     <p>@p.Name</p> 
    } 
} 
+0

ありがとう、私はサイトに新しいです、私を許してください – user5771351

+0

このクラスはネストされたgroupByを許可することができますか、私は2つか3つのフィールドをグループ化 – user5771351

関連する問題