Я хочу, чтобы оператор linq преобразовал в другой список в веб-API
var data = Base_Tables.db.Lines.Find(id).Owner_Line.OrderByDescending(x => x.ID)
.Select(x => new { x.ID, Caption = x.Name1 + " " + x.Name2 + " " + x.Name3 })
.ToList();
List<HistoryLine> historyList = data as List<HistoryLine>();
Класс HistoryLine
public class HistoryLine
{
public long ID { get; set; }
public string Caption { get; set; }
}
How to Convert ? , if can't convert statement, any way to fix this problem ?





Просто выберите нужный объект вместо анонимного типа.
var data = Base_Tables.db.Lines
.Find(id).Owner_Line
.OrderByDescending(x => x.ID)
.Select(x => new HistoryLine {ID = x.ID, Caption = x.Name1 + " " + x.Name2 + " " + x.Name3})
.ToList();
данные теперь List<HistoryLine>
Нет данных сейчас в List <‘a>, потому что с помощью select
@ ZanyarJ.Ahmed, прочтите мою правку еще раз, это List<HistoryLine>, потому что вы выбрали INTO HistoryLine, не указывая его, вы создаете анонимный объект.
.Select (x => new {x.ID, Caption = x.Name1 + "" + x.Name2 + "" + x.Name3}) является проблемой. используйте .Select (x => new HistoryLine {x.ID, Caption = x.Name1 + "" + x.Name2 + "" + x.Name3})
новая HistoryLine
@gilliduck, у меня сейчас нет компьютера, попробуйте ваш код позже, вы уверены, что работает?
@ZA: Я могу поручиться за его код. Это даст вам List <HistoryLine> в данных. Мой предыдущий комментарий объясняет разницу в том, почему ваш терпит неудачу. Вы используете анонимный тип. он не.
Измените тип данных с 'var data' на 'List <HistoryLine> data'. Тогда intellisense точно скажет вам, что не так с вашим кодом ?