collection.Where(i => i.condition)
.ToList()
.ForEach(i => SomeComplicatedOpInvolving_i);
Tôi không tìm kiếm câu trả lời cho tôi biết có cách dễ dàng hơn để thực hiện việc này, chỉ coi đó là thử nghiệm tư duy.Tôi có nghĩ rằng đoạn mã này là O (n^3) không?
Đầu tiên, tôi có nghĩ rằng đây là ba vòng không? Where()
, ToList()
và ForEach()
?
Thứ hai của tất cả, (giả sử nó là ba vòng) tôi có phải suy nghĩ đây là n với sức mạnh của 3 trong ký hiệu O lớn?
Cảm ơn mọi người.
Nó không phụ thuộc vào những gì SomeComplicatedOpInvolving_i làm gì? – AndrewC
Nếu chúng ta giả định rằng 'bộ sưu tập' thuộc loại' IEnumerable ', thì nó sẽ chỉ là O (2 * n), do tải chậm. –
ebb
Đừng 'ToList' chỉ vì bạn không muốn sử dụng vòng lặp' foreach() 'bình thường, vì việc tạo và điền vào danh sách là cho đến nay hoạt động chuyên sâu nhất trong đoạn mã này. – Dykam