繁体   English   中英

计数嵌套列表中的项目

[英]Count items in a nested list

我有一个称为Comment的类,该类具有一个属性,该属性是Comments的列表。 因此,一个评论可以有多个回复。 例如:

        comments = new List<Comment>
        {
            new Comment
            {
                CommentText = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
                ParentBlogId = blogId,
                PublishedDate = DateTime.Now,
                User = new User{UserName = "arnvanhoutte"},
                Replies = new List<Comment>
                {
                    new Comment
                    {
                        CommentText = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
                        ParentBlogId = blogId,
                        PublishedDate = DateTime.Now,
                        User = new User{UserName = "arnvanhoutte"},
                        Replies = new List<Comment>
                        {
                            new Comment
                            {
                                CommentText = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
                                ParentBlogId = blogId,
                                PublishedDate = DateTime.Now,
                                User = new User{UserName = "arnvanhoutte"}
                            }
                        }
                    },
                    new Comment
                    {
                        CommentText = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
                        ParentBlogId = blogId,
                        PublishedDate = DateTime.Now,
                        User = new User{UserName = "arnvanhoutte"}
                    }
                }
            },
            new Comment
            {
                CommentText = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
                ParentBlogId = blogId,
                PublishedDate = DateTime.Now,
                User = new User{UserName = "arnvanhoutte"}
            },
            new Comment
            {
                CommentText = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
                ParentBlogId = blogId,
                PublishedDate = DateTime.Now,
                User = new User{UserName = "arnvanhoutte"}
            }
        };

现在,我想知道此列表中总共有多少条评论。 因此,如果我做comments.Count()我只会得到3。但是实际上,该列表中有6条评论。 我将如何计算这些?

这是一个计算所有注释的递归函数:

public int RecursiveCount(List<Comment> commentList)
{
    int partialCount = commentList.Count();

    foreach (Comment c in commentList)
        if(c.Replies != null)
            partialCount += RecursiveCount(c.Replies);

    return partialCount;
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM