Как получить свойство значения IEnumerable <object> - PullRequest
0 голосов
/ 21 января 2020

У меня есть свойство getter и setter с именем ValueIn, где достигается IEnumerable<object>. Значение содержит все свойства из IKontoDisplayModel, заполненные данными. Я хочу извлечь свойство "Nummer" из IKontoDisplayModel. Как я могу получить это значение? Я всегда получаю эту ошибку:

(value as IKontoDisplayModel).Nummer = '(value as IKontoDisplayModel).Nummer' threw an exception of type 'System.NullReferenceException':

enter image description here

Ответы [ 3 ]

4 голосов
/ 21 января 2020

Ваш value имеет тип IEnumerable<object>, вы пытаетесь изменить тип на IKontoDisplayModel, что никогда не получится. Так как похоже, что вы пытаетесь собрать все числа, которые вы могли бы сделать:

var nummern = value.Select(x => (x as IKontoDisplayModel).Nummer);

Но это все равно может генерировать NullReference, поскольку некоторые объекты могут не относиться к указанному типу. Вы можете отфильтровать значение IEnumerable с помощью метода расширения OfType:

var nummern = value.OfType<IKontoDisplayModel>().Select(x => x.Nummer);

, который будет принимать только те объекты, которые на самом деле IKontoDisplayModel

1 голос
/ 21 января 2020

Как мне кажется, IKontoDisplayModel - это отдельный объект, и у вас есть IEnumerable из IKontoDisplayModel. Итак, вы хотите получить один из них, а затем позвонить Number. И под одним из них я имею в виду FirstOrDefault(), LastOrDefault() et c

0 голосов
/ 21 января 2020

1) Я не понимаю, почему вы не используете свой interface вместо универсального c object

2) Вы передаете его IEnumerable, поэтому вы должны сделать value.FirstOrDefault()?.Number

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...