Gọi phương thức x lần bằng linq


8

Tôi muốn gọi một phương thức 3 lần Sử dụng LINQ , phương thức trả về một đối tượng, với đối tượng đó tôi muốn thêm nó vào Danh sách, tôi phải làm thế nào?

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

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

private static News CollectNews(){
...
}


7
Bất kỳ lý do cụ thể tại sao bạn phải sử dụng Linq?
CurtisHx

1
Có lẽ bạn đang nhầm lẫn Linq với biểu hiện Lambda?
Roy Doron

Câu trả lời:


4

Theo tôi hiểu bạn muốn kết thúc với một danh sách ba Newsđối tượng. Bạn có thể làm một cái gì đó như

Enumerable.Repeat(1, 3).Select(_ => CollectNews()).ToList();

Bạn có thể sử dụng bất kỳ giá trị thay cho 1trong ví dụ đó.

Trong khi phương pháp này hoạt động, đó là loại lạm dụng ý tưởng về LINQ. Cụ thể, bạn không nên nhận bất kỳ lệnh thực hiện CollectNews()cuộc gọi nào. Trong khi việc Selectthực hiện tiêu chuẩn sẽ thực hiện theo trình tự, điều này có thể không phải lúc nào cũng đúng.



5

Bạn có thể System.Linq.Enumerablelặp lại một hành động nhiều lần.

                Enumerable.Repeat<Action>(() =>
            {
                lstNews.Add(CollectNews);
            }, 3);

Điều này sẽ chạy Addphương thức trong danh sách 3 lần. Tài liệu Enumerable.Repeat ở đây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.