我有一个ID和名称的列表,我想填充其他两个列表的属性。LINQ:填写列表<ViewModel>与来自2个不同模型的属性
List<Foo> foolist = foo.fromdatasource(); // for all items in this list
List<Bar> = barlist from bar.datasource(); // fill a new list with Name property from this list
List<ViewModel> viewModel = new List<ViewModel>();
foreach (Foo foo in foolist)
{
viewmodel.Add(new ViewModel
{
Id = foo.Id
Name = barlist.Where(f => f.Id == b.Id).Select(s => s.Name)
});
}
最后一行没有给出从barlist中的项目对应于来自愚人主义的ID的名称。有谁知道这样做的正确方法?
'。选择(S => s.Name)'会返回一个匿名对象的集合'名称'属性。你想使用伯爵Les解决方案。在附注中,请阅读“访问修改后的关闭”(我假设你的意思是'f.Id == foo.Id')。 – alexn 2013-03-24 17:51:44
@alexn:你确定它会返回anon的集合。具有'Name'属性的对象?我认为它应该返回一个'String'集合,或者'Name'类型。 – 2013-03-24 18:05:07
@BorisB。你当然是对的,我的不好:) – alexn 2013-03-24 18:24:45