2008-11-26 4 views
2
Страницы данного

У меня есть DataTable, который запрашивает что-то вроде нижеLINQ группировки/вложенный запрос для заполнения иерархии данных

usergroupid...userid......username 
1.............1...........John 
1.............2...........Lisa 
2.............3...........Nathan 
3.............4...........Tim 

То, что я пытаюсь сделать, это написать заявление LINQ, который возвращает массив экземпляров UserGroup , Класс UserGroup имеет свойства UserGroupId и Users. Пользователи представляют собой массив экземпляров пользователя. Затем класс User имеет свойства UserId и UserName.

Можно заполнить такую ​​иерархию с помощью одного оператора LINQ и как он будет выглядеть?

Благодаря миллиона

ответ

5

Проверьте это, надеюсь, что это помогает

var users = new[] 
{ 
    new {UserGroupId = 1, UserId = 1, UserName = "John"}, 
    new {UserGroupId = 1, UserId = 2, UserName = "Lisa"}, 
    new {UserGroupId = 2, UserId = 3, UserName = "Nathan"}, 
    new {UserGroupId = 3, UserId = 4, UserName = "Tim"} 
}; 

var userGroups = from user in users 
       group user by user.UserGroupId into userGroup 
       select new { 
           UserGroupId = userGroup.Key, 
           Users = userGroup.ToList() 
          }; 

foreach (var group in userGroups) 
{ 
    Console.WriteLine("{0} - {1}",group.UserGroupId, group.Users.Count); 
} 
+0

@rahan бить меня it..dam вас;) –

-2

Существует - посмотреть на GroupBy и Select методов.

 Смежные вопросы

  • Нет связанных вопросов^_^