我有一个数据表,需要对这些值进行分组,因为只有一列(Pax)没有重复的数据,而其他数据则希望显示在一行中。
是这样的: Actual
并且应为: Should be
Points.Value_X
一列具有不同的数据,其他数据预计将显示在一行中。
答案 0 :(得分:0)
如果您创建一个可以反映您要显示的数据的模型,则会更容易。这样,操作就可以在代码中进行,并且视图仅遵循模型中的内容。
这不是最优雅的例子。考虑一下它是一个例子。
你有这个:
public class TheModelYouHave
{
public string Servico { get; set; }
public string DescTipo { get; set; }
public string StatusReserva { get; set; }
public string IdentReserva { get; set; }
public string PaxsReserva { get; set; }
}
您想要的是什么
public class TheModelYouWant
{
public Dictionary<string, IEnumerable<TheModelYouHave>> ModelsGroupedByPaxsReserva { get; }
= new Dictionary<string, IEnumerable<TheModelYouHave>>();
}
这是一本字典。密钥是PaxsReserva
的每个不同值,并且该值是PaxsReserva
具有相同值的所有项目的集合。
要将所需的模型映射到所需的模型:
public static TheModelYouWant ToTheModelYouWant(IEnumerable<TheModelYouHave> source)
{
var grouped = source.GroupBy(src => src.PaxsReserva, src => src);
var result = new TheModelYouWant();
foreach(var group in grouped)
result.ModelsGroupedByPaxsReserva.Add(group.Key, group);
return result;
}
现在在您看来:
@foreach(var paxs in Model.ModelsGroupedByPaxsReserva.Keys)
,然后获取属于该键的各个模型:
var items = Model.ModelsGroupedByPaxsReserva[paxs];
(我叫items
是因为我不知道这些是什么。)