我有以下linq目前正在工作,但我真正想要的是返回ICollection<SexyPeopleVM>
而不是列表。但我无法理解语法和其他替代方案,我尝试在运行时失败。
这可能吗?我怎样才能做到这一点?
var o = from s in sexyPeople
select new SexyPeopleVM()
{
id = s.ID,
title = s.Title,
views = s.Views,
url = s.GetFullyQualifiedURL(),
friendlyDate = s.DateCreated.AsShortFriendly()
};
List<SexyPeopleVM> list = o.ToList();
return list;
答案 0 :(得分:7)
List<T>
实施ICollection<T>
你不需要做任何事情。
答案 1 :(得分:3)
正如SLaks所说,他打败了我,但我想补充一下,你可以让你的代码更清洁一点:
return (from s in sexyPeople
select new SexyPeopleVM()
{
id = s.ID,
title = s.Title,
views = s.Views,
url = s.GetFullyQualifiedURL(),
friendlyDate = s.DateCreated.AsShortFriendly()
}).ToList();
另外一件事,如果你没有,请获取Resharper。
我现在用
var list = new List<object>();
而不是:
List<object> list = new List<object>();
A good post as to why to use var.
这只是一种编码风格购买Resharper可以清理你的代码。
我养成了习惯和其他更干净的习惯,比如上面两个,感谢Resharper。我现在不能没有它。
答案 2 :(得分:1)
如果您真的想要ICollection,请执行
return o.ToList() as ICollection<SexyPeopleVM>;