我正在使用这个linqQuery重新列出一个博客帖子列表
var blogPosts = _repo.GetPosts().OrderByDescending(o => o.PostedOn).Take(25).ToList();
在我的课堂上,我有一个名为Description的字符串属性,包含很长的文本。
我的问题是,我如何在linqQuery中包含一些代码,说它应该只返回public string Description { get; set; }
答案 0 :(得分:4)
这样的事情应该有效:
var blogPosts = _repo
.GetPosts()
.OrderByDescending(o => o.PostedOn)
.Take(25)
.AsEnumerable()
.Select(x => new BlogPost
{
Description = x.Description.Substring(0, 20)),
// set other properties
});
答案 1 :(得分:3)
var blogPosts = _repo.GetPosts()
.OrderByDescending(o => o.PostedOn)
.Take(25)
.ToList()
.Select(x=>new
{
x...., //other needed properties
Description = x.Description.Substring(0,20)
});
答案 2 :(得分:3)
如果你只想要简短的描述,你可以做更多的LinQ:
var shortenedDescriptions = blogPosts.Select(post => post.Description)
.Select(s => s.Substring(0, Math.Min(s.Length, 20))).ToList();
如果你想优化它,你可以一次完成两个选择。
如果你真的想缩短描述,你需要一个循环:
foreach(var post in blogPosts)
{
post.Description = post.Description.Substring(0, Math.Min(s.Length, 20))
}