使用linq调用方法x次

Pab*_*ros 5 c# linq

我想调用一个方法3次使用LINQ,该方法返回一个对象,该对象我想将其添加到列表中,我该怎么做?

List<News> lstNews = new List<News>();

lstNews.Add(CollectNews) [x 3 times] <-- Using Linq 

private static News CollectNews(){
...
}


Run Code Online (Sandbox Code Playgroud)

Chr*_*ann 5

var lstNews = Enumerable.Repeat(0, 3).Select(_ => CollectNews()).ToList();
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以System.Linq.Enumerable多次重复一个操作。

                Enumerable.Repeat<Action>(() =>
            {
                lstNews.Add(CollectNews);
            }, 3);
Run Code Online (Sandbox Code Playgroud)

这将运行Add列表中的方法 3 次。文档在Enumerable.Repeat 这里。


Grz*_*cki 5

据我了解,您希望最终得到三个对象的列表News。你可以做类似的事情

Enumerable.Repeat(1, 3).Select(_ => CollectNews()).ToList();
Run Code Online (Sandbox Code Playgroud)

您可以使用任何值来代替1该示例中的 。

虽然这种方法有效,但它有点滥用 LINQ 的思想。特别是,您不应假定任何执行CollectNews()调用的顺序。虽然标准Select实现将按顺序执行,但这可能并不总是正确的。