2013-02-13 2 views
-2

я пытаюсь объединить всех пользователей по типу пользователя добавить их в список:
код:запрос на группы для печати

public string[] GroupByUserType() 
    { 
     using (DataBase db = new DataBase()) 
     { 
      var query = from e in db.Users 
         group db.Users by e.UserType; 

      string[] groups; 

      List<string> groupsByUserType = new List<string>(); 

      foreach (var name in query) 
      { 
       foreach (var item in name) 
       { 
        groupsByUserType.Add(item);<--- error here 
       } 
      } 
      groups = groupsByUserType.ToArray(); 

      return groups; 
     } 

    } 

я получаю:

Ошибка 1 Лучший перегруженный метод матч за 'System.Collections.Generic.List.Add (строка)' имеет некоторые недопустимые аргументы C: \ Users \ Dev4 \ Documents \ Visual Studio 2008 \ Projects \ Linq \ SQLQuery \ QueryOnName.cs 27 25 SQLQuery

и

Ошибка 2 Аргумент '1': не может конвертировать из 'System.Data.Linq.Table' в 'строка' C: \ Users \ Dev4 \ Documents \ Visual Studio 2008 \ Проекты \ Linq \ SQLQuery \ QueryOnName.cs 27 46 SQLQuery

+1

Вы проанализировали типы ваших переменных в отладчике? –

+0

Что такое _type (s) _ ваших переменных? – Brian

ответ

0

Преобразовать имя ToString(), а затем, как вы делаете список строки

groupsByUserType.Add(item.Name); 

надеюсь, что это поможет.

1

проблема Ваш запрос LINQ возвращает список System.Data.Linq.Table, попытайтесь получить доступ к имени свойства, как это:

public string[] GroupByUserType() 
{ 
    using (DataBase db = new DataBase()) 
    { 
     var query = from e in db.Users 
        group db.Users by e.UserType; 

     string[] groups; 

     List<string> groupsByUserType = new List<string>(); 

     foreach (var name in query) 
     { 
      foreach (var item in name["name"]) 
      { 
       groupsByUserType.Add(item);<--- error here 
      } 
     } 
     groups = groupsByUserType.ToArray(); 

     return groups; 
    } 
} 
Смежные вопросы