2016-01-21 2 views
0

я хочу, чтобы добавить эту строку в мой список, но когда я ставлю эту ошибку сообщения results.Add("TOUT"); , как я могу добавить Tout в списоккак добавить элемент в список

это метод, когда я хочу добавить новый элемент

dynamic results = (from ta in db.client 
           select new 
           { 
            Name= ta.Name 
           }).Distinct().ToList(); 

Может кто-то поможет мне исправить это и спасибо за вашу помощь

+0

не уверен, чего вы пытаетесь достичь. Вы создаете список объектов с свойством «Имя», а затем вы пытаетесь добавить строку в этот список? – Elph

ответ

1

Вы не можете добавить в список string, потому что вы не создаете список строк. Вы создаете список экземпляров анонимного типа.
Там почти никогда не нужно создавать анонимный тип с только одно свойство, так что просто выберите строку:

(from ta in db.client select ta.Name).Distinct().ToList() 

или просто

db.client.Select(ta => ta.Name).Distinct().ToList() 

Это создаст List<string>. (Предполагая, что ta.Name является string)

1

Linq не создан для поддержки данных манипуляции, но данные-запрос. Таким образом, вы должны повернуть свои результаты в любой список, где вы можете добавлять элементы. например:

var results = (from ta in db.client 
     select new 
     { 
      Name= ta.Name 
     }).Distinct().ToList(); 

Теперь вы можете просто добавить свой элемент, создав анонимный экземпляр, совместно использующий необходимые свойства.

results.Add(new { Name = "TOUT" }); 

Обратите внимание, что ключевое слово dynamic не нужно здесь, как возвращаемый список уже сильно типизированный (хотя нет класса четкости в сборке для этого, определения находится в пределах временной сборки, где типа является anonymous).

EDIT: Для упрощения вы также можете полностью анонимно анонимного типа и выбрать только name.

Таким образом, вместо

select new { ... } 

вы пишете

select ta.Name 

Таким образом, вы получите список строк, где вы можете просто добавить свой последний элемент TOUT.

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