使用此查询:
foreach(var y in items)
{
<div>@y.fieldA => @y.FieldB</div>
}
我得到了这个输出:
3 => 2
3 => 1
2 => 2
3 => 2
我知道在LINQ中我们可以很容易地计算和分组:
foreach(var y in items.GroupBy(g => g.Field)
.Select(group => new {Field = group.Key, count = group.Count()}))
{
<div>@y.Field : @y.count</div>
}
但是我怎样才能将它调整到连接输出,以便我得到这个结果:
3 => 2 : 2
3 => 1 : 1
2 => 2 : 1
答案 0 :(得分:1)
使用Select
投影所需的字符串,而不是投射匿名对象:
foreach(var item in items.GroupBy(g => $"{g.FieldA} => {g.FieldB}")
.Select(g => $"{g.Key} : {g.Count()}"))
{
<div>@item</div>
}
对于C#6.0之前的版本:
foreach(var item in items.GroupBy(g => g.FieldA + " => " + g.FieldB)
.Select(g => g.Key + " : " + g.Count()))
{
<div>@item</div>
}