gpt4 book ai didi

c# - 使用 "yield"时如何返回空行?

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:57 27 4
gpt4 key购买 nike

我有以下使用 yield 构建集合的代码:

public IEnumerable<Comment> GetComments(
IEnumerable<ContentItem> commentContentItems)
{

foreach (var commentContentItem in commentContentItems)
{
var Comment = new Comment
{
CommentCreatedByName = commentContentItem.InitiatorName,
CommentCreatedByID = commentContentItem.CreatedByID,
ContentItemID = commentContentItem.ContentItemID,
CommentDate = commentContentItem.CreatedDate
};

yield return Comment;
}
}

我想开始检查一个项目是否被删除,如果是,以不会将已删除项目添加到集合中的方式产生。

我知道我可以像这样使用 linq 来减少集合:

foreach (var commentContentItem in commentContentItems.Where(x => !x.Deleted))

但是为了论证;你会如何使用 yield for,比方说,situations where yield is more performant

例如:

if (commentContentItem.Deleted)
{
yield return null;
}

最佳答案

我说得对吗,您只是不想在结果中删除已删除的项目?那么在那种情况下就不要yield return!

if (!commentContentItem.Deleted)
yield return Comment;

关于c# - 使用 "yield"时如何返回空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18760791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com