I am getting domain related information as a simple list from database and now i need to group the information before binding to the view. Here is my Class details. I tried various group logic but could not get achieve the result
public class CapabilitySelectionModel
{
public string Domain { get; set; }
public string Category { get; set; }
public string Capability { get; set; }
}
List<CapabilitySelectionModel> list1 = new List<CapabilitySelectionModel>();
list1.Add(new CapabilitySelectionModel { Domain = "Domain1", Category = "Category1", Capability = "Capability1" });
list1.Add(new CapabilitySelectionModel { Domain = "Domain1", Category = "Category1", Capability = "Capability2" });
list1.Add(new CapabilitySelectionModel { Domain = "Domain1", Category = "Category2", Capability = "Capability1" });
list1.Add(new CapabilitySelectionModel { Domain = "Domain2", Category = "Category1", Capability = "Capability1" });
list1.Add(new CapabilitySelectionModel { Domain = "Domain2", Category = "Category2", Capability = "Capability1" });
list1.Add(new CapabilitySelectionModel { Domain = "Domain2", Category = "Category2", Capability = "Capability2" });
It will look something like this
Domain1
Category1
Capability1
Capability2
Category2
Capability1
Domain2
Category1
Capability1
Category2
Capability1
Capability2
Now, i want this list to be converted to the below list format
public class DomainModel
{
public string DomainName { get; set; }
public List<CategoryModel> CategoryModel { get; set; }
}
public class CategoryModel
{
public string CategoryName { get; set; }
public List<CapablityModel> CapablityModel { get; set;}
}
public class CapablityModel
{
public string CapablityName { get; set; }
}
Can someone advise?
Not tested, but you just need some nested Grouping: