2016-03-10 2 views
1

У меня есть этот класс:Добавление элементов в подрешетке массива не работает

ActiveCampaign 
{ 
    public Campaign campaign; 
    public IEnumerable<CampaignView> Views; 
} 

переменного тока является тип ActiveCampaign[]

Следующий код выполняется без каких-либо ошибок, но ничего не добавляют к его Просмотры. Что мне здесь не хватает?

ac.FirstOrDefault(a => a.Campaign.Id == c.Id).Views.ToList().Add(cv); 

ответ

1

Вы создаете новый список, который является копией объекта Views, а затем добавить к он, а затем выбросил этот список.

Если вы хотите постоянно воздействовать на Views, тогда сделайте его List или IList и добавьте его прямо.

Если вы хотите увидеть представления плюс этот новый элемент, то получите список в переменную перед добавлением или используйте Concat (или даже лучше Append, хотя он доступен только в ядре dotnet), чтобы создать перечисление представлений предметы вместе с добавлением.

2

Когда вы звоните ToList(), вы создаете отдельный список; вы не добавляете к ac. Вам необходимо присвоить возвращаемое значение:

List<ActiveCampaign> newList = ac.FirstOrDefault(a => a.Campaign.Id == c.Id).Views.ToList(); 

, а затем вы можете использовать его ...

newList.Add(cv); 
+0

Я получаю сообщение об ошибке 'Невозможно неявно преобразовать тип 'void' в 'System.Collections.Generic.List '' –

+0

Извините, обновлено. –

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