2010-03-20 2 views
2

, что случилось с таким кодомLINQ выбора в пользовательский объект

public List<SearchItem> Search(string find) 
     { 


      return (from i in _dataContext.News where i.Text.Contains(find) select new SearchItem { ControllerAction = "test", id = i.Id.ToString(), LinkText = "test" }).ToList(); 
     } 

public struct SearchItem 
    { 
     public string ControllerAction; 
     public string LinkText; 
     public string id; 
    } 

ответ

2
new SearchItem() {...} 

// нет .ToList() или еще не нужен класс (ы/ба класс со свойством Get/Set), вы могли бы просто сказать, что новый

+0

вы можете объяснить, нет ли списка ToList и получить/установить? – kusanagi

+0

Как вы видите, что это не класс, а структура, мне нужен класс? – kusanagi

+0

Я изучаю искусство быстрого ответа ... Единственным, должно быть, из-за метода sig является ToList (). Вы можете использовать структуру с открытыми членами, но это «философская проблема», и это ограничит ваши привязки данных и варианты управления версиями. Классы со свойствами более «норма» esp, когда они публичны. В дополнение к присваиванию через {} вы можете использовать методы ctor (в скобках). Наличие неявного/явного без параметров ctor выгодно для классов, используемых с коллекциями или обобщенными ограничениями (но для структуры требуется неявный без параметров ctor). Используйте struct, если это имеет смысл. –