Чтобы заполнить список из DataTable, я обычно пишу выражение вроде этого:
List<Foo> foos = dt.AsEnumerable().Select(dr =>
new Foo { Bar = Convert.ToIn32(dr["Bar"]),
Baz = Convert.ToDecimal(dr["Baz"]) }).ToList();
Как мне написать подобное утверждение для инициализации одного объекта, когда я знаю, что DataTable вернет просто1 строка как в следующем псевдокоде :
Foo foo = dt.Rows[0].Select(dr =>
new Foo { Bar = Convert.ToIn32(dr["Bar"]),
Baz = Convert.ToDecimal(dr["Baz"]) });
Я хотел бы написать только одно утверждение и не использовать (если возможно) 2 строки, подобные этой:
DataRow dr = dt.Rows[0];
Foo foo = new Foo { Bar = Convert.ToIn32(dr["Bar"]),
Baz = Convert.ToDecimal(dr["Baz"]) });
Я пробовал комбинации Where
, Select
, First
, Single
, но не могу поразить гвоздь в голову!
Любые ответы, как всегда, приветствуются.