我想在linq结果中添加一个项目。这是我的初步查询。
var groups = from gr in monitors.groupiddeviceids
where gr.device.customerID == customerID
group gr by gr.grouping.GroupName into g
select new { Group = g.Key, Devices = g.Count() };
我想把它放到这样的gridview数据源中:
gvGroups.DataSource = groups.ToList();
但事先我想再添加一行。该行为{string,int}格式。我要添加的行应为{“未分配”,14}
如何将项目添加到匿名类型的linq列表中?
答案 0 :(得分:6)
您可以将此匿名类型放在数组中并使用Concat
:
var unassigned = new[] { new { Group = "Unassigned", Devices = 14 } };
gvGroups.DataSource = groups.Concat(unassigned).ToList();
如果您希望它成为第一项:unassigned.Concat(groups).ToList();
如果它实际上是数据库查询,那可能会导致一些麻烦。然后首先实现查询,例如使用ToList
:
var groupList = groups.ToList();
groupList.Add(unassigned);
gvGroups.DataSource = groupList;
答案 1 :(得分:0)
让它像那样工作,谢谢!
gvGroups.DataSource = groups.ToList().Concat(new[] { new { Group = "Unassigned", Devices = 14 } });