2015-05-19 72 views
0

我有以下模型;如何訪問ViewModel的列表

public class Object 
{ 


    public int Id { get; set; } 
    public string Name { get; set; } 
    public Nullable<double> Price { get; set; } 
    public string Description { get; set; } 
    public string Image { get; set; } 
    public Nullable<int> Type { get; set; } 
} 

我創建了一個視圖模型;

public class PlanBaseTypedObjects 
{ 

    public int? Id { get; set; } 

    public IEnumerable<Object> ObjectDetails { get; set; } 
} 

在我的控制器我做了如下分組;

var model = model1.GroupBy(t => t.Type).Select(g => new PlanBaseTypedObjects 
     { 
      Id = g.Key, 
      ObjectDetails = g 
     }); 

我如何獲得屬於特定「類型」的記錄數? 對於類型1的示例ObjectDetails下有多少條記錄?

我可以直接訪問「objectDetails」嗎? 例如,如果我想知道Type 2的Id = 3的「名稱」,我可以得到它嗎?

+0

MSDN上的組信息由:https://code.msdn.microsoft.com/LINQ-to-DataSets -Grouping-c62703ea –

回答

1

您需要迭代分組結果以查找每個分組的結果。

foreach(var group in model) 
{ 
    int groupCount = group.ObjectDetails.Count(); 
} 

如果你想訪問ObjectDetails的項目,你需要另外的foreach:

foreach(var group in model 
{ 
    int groupCount = group.ObjectDetails.Count(); 
    foreach(var item in group.ObjectDetails)) 
    { 
     //do something with item 
    } 
}