Tôi có một bộ đối tượng mô hình có thuộc tính boolean công khai IsVisible
. Tất cả những gì tôi cần làm là tìm hiểu xem có ít nhất một tập hợp có giá trị được đặt thành TRUE
hay không. Nói cách khác, nếu tôi có 10.000 đối tượng nhưng thứ hai là true
, tôi không cần phải quay qua 9,998 khác. Tôi đã có câu trả lời.Kiểm tra đơn giản để xem ít nhất một đối tượng trong một tập có giá trị thuộc tính là TRUE
Bây giờ tôi biết tôi có thể viết chức năng lặp của riêng mình và thoát ra ở giá trị 'True
' đầu tiên, nhưng tôi hy vọng đó là điều mà LINQ có thể làm. Trên thực tế, nó thậm chí không cần phải được LINQ. Mọi đề xuất đều được chào đón.
BTW, ngôn ngữ bạn chọn là C#.
Cập nhật:
Xem bài viết cuối cùng của tôi ở đây. Tôi đã thêm một số mã kiểm tra và thời gian. Dường như LINQ là khá kém hiệu suất kém khôn ngoan so với chỉ làm thử nghiệm bản thân mình. Chắc chắn nó dễ dàng hơn để viết, nhưng trong thời gian nhiệm vụ quan trọng, tôi không còn chắc chắn. Những gì tôi ngạc nhiên mặc dù hầu hết thời gian tôi đã chạy những điều này, đếm được chiến thắng và bởi một clip công bằng, nhưng vì một lý do nào đó, khi tôi quấn thử nghiệm trong nhiều lần, có vẻ như đã chuyển sang lập chỉ mục với một được lưu trong bộ nhớ cache là nhanh nhất.
Tôi cũng nhận thấy rằng nếu tôi không đặt lại mọi thứ về 'sai', tất cả các thử nghiệm còn lại/lặp lại dường như MUCH nhanh hơn. Bằng cách nào đó, hãy thiết lập lại mọi thứ thành FALSE (đã cố ý overkill để kiểm tra chính xác điều này ...) thay đổi mọi thứ.
Thú vị. Không chắc tôi sẽ đi theo cách nào. Điều này không phải là một hệ thống nhiệm vụ quan trọng vì vậy có lẽ tôi sẽ đi cho dễ đọc, nhưng vẫn còn. Hấp dẫn.
Khi tối ưu hóa, bạn phải giao dịch với tốc độ thực thi so với chi phí của lập trình viên. Hầu hết các nhà quản lý dev muốn mua nhiều máy chủ hơn là trả tiền cho nhiều lập trình viên hơn - và chỉ một phần nhỏ mã chạy trong một con đường quan trọng. Thông thường mã lệnh nhanh nhất để viết và kiểm tra các chiến thắng trên mã thực hiện nhanh nhất, khi tất cả các chi phí (bao gồm chi phí dev) được tính đến. Theo kinh nghiệm của tôi, LINQ viết nhanh hơn nhiều nhưng thực thi chậm hơn. Nó vẫn chiến thắng gần như tất cả thời gian trong kinh nghiệm của tôi. – Slaggg
Slagg, chưa có đủ điểm để bỏ phiếu bình luận, nhưng biết nếu tôi đã làm, bạn sẽ có được một cho điều đó. Có thể rõ ràng, nhưng tính ngắn gọn của nó thực sự nổi bật (không giống như điểm chính nó làm quá! Thông minh bạn của tôi! Rất thông minh!) – MarqueIV