如何向LINQ查询添加另一个单一匿名类型?

时间:2014-09-03 13:04:02

标签: c# linq

我想在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列表中?

2 个答案:

答案 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 } });