我想调用一个方法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)
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 这里。
据我了解,您希望最终得到三个对象的列表News。你可以做类似的事情
Enumerable.Repeat(1, 3).Select(_ => CollectNews()).ToList();
Run Code Online (Sandbox Code Playgroud)
您可以使用任何值来代替1该示例中的 。
虽然这种方法有效,但它有点滥用 LINQ 的思想。特别是,您不应假定任何执行CollectNews()调用的顺序。虽然标准Select实现将按顺序执行,但这可能并不总是正确的。