2016-09-28 5 views
-2

У меня есть возвращаемый список IEnumerable из службы, который мне нужно сопоставить с моим IEnumerable моего типа объекта. Его прямое отображение:Я хочу преобразовать IEnumerable в List или IEnumerable

Но я получаю следующее сообщение об ошибке:

System.Linq.Enumerable+WhereSelectEnumerableIterator`2 

Я попытался с помощью опалить/Во-первых, но это не позволить сам запустить приложение, так что мне не помогает.

private IEnumerable<Doctor> From(IEnumerable<DoctorsList> doctorList) 
{ 
    var doctors = new List<Doctor> 
    { 
     new Doctor() 
     { 
      Name = doctorList.Select(e => e.Name).ToString() ?? null, 
      Id = doctorList.Select(e => e.Id).ToString() ?? null 
     } 
    }; 

    return doctors; 
} 
+0

Что это объект 'DoctorList'? это не должно быть 'List '? – fubo

+1

'System.Linq.Enumerable + WhereSelectEnumerableIterator'2' не является сообщением об ошибке, это имя типа. Не могли бы вы рассказать нам, что такое сообщение об ошибке? –

+0

@fubo: Да, это доктор не список – Learner

ответ

3

Я думаю, что вы можете добиться этого с помощью простого Select, Посмотрите в коде ниже:

private IEnumerable<Doctor> From(IEnumerable<DoctorsList> doctorList) 
{ 
    return doctorList.Select(x=> new Doctor() 
           { 
            Name = x.Name?? null, 
            Id = x.Id?? null 
           }); 
} 
+0

Вы близки к правильному, потому что раньше у меня были индивидуальные свойства и вы использовали подобный выбор, как вы это делали. Теперь мой начальник попросил меня использовать объект и список этого объекта, поэтому я боюсь. Я попробую ваше решение сейчас, будет держать вас в курсе в несколько минут о том, как это происходит. – Learner

+0

К сожалению, ваше решение дает мне ошибку времени выполнения. – Learner

+0

. Я могу вам помочь, если вы скажете мне, что случилось с ошибкой, попробовав, удалив ' .Tostring() ' –