2014-09-03 1 views
1

linq 결과에 항목을 추가하고 싶습니다. 여기에 내 초기 쿼리가 있습니다.LINQ 쿼리에 다른 단일 익명 형식을 추가하는 방법은 무엇입니까?

gvGroups.DataSource = groups.ToList(); 

을하지만 사전에 내가 여기에 또 하나 개의 행을 추가 할 :

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 데이터 소스에 이것을 넣고 싶다. 행은 {string, int} 형식입니다. 추가하려는 행에 { "할당되지 않음", 14}이 (가) 있어야합니다.

linq 목록에 항목을 추가하려면 어떻게해야합니까?

+0

groups.ToList(). Add (new {Group = "UnAssigned", Devices = 14}); gvGroups.DataSource = 그룹; ? – brz

+0

http://stackoverflow.com/questions/5240412/add-an-anonymous-object-to-an-anonymous-list – Minja

답변

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; 
0

는, 그런 덕분에 일을있어!

gvGroups.DataSource = groups.ToList().Concat(new[] { new { Group = "Unassigned", Devices = 14 } }); 
+0

나는 이것을 고려하여 나의 대답을 편집했다. 나는'groups.ToList(). Concat (..) .ToList()'를 사용하지 않을 것이므로 그렇게하지 않을 것입니다. 하나의'ToList' +'List.Add'를 사용하십시오. –

관련 문제