Kiến thức

Việc sử dụng .Any () trong Danh sách C # <> là gì?

40

Tôi đã thảo luận vấn đề này với các đồng nghiệp và chúng tôi không thể tìm ra cách sử dụng

.Any

cho bất kỳ mục đích nào List<>, trong C #.

Bạn có thể kiểm tra tính hợp lệ của một phần tử trong mảng như câu lệnh sau:

if (MyList.Any()){ ...} //Returns true or false

Mà giống hệt như

if (MyList.Count() != 0) { ... }

và là phổ biến hơn nhiều, có thể đọc và rõ ràng về ý định của iftuyên bố.

Cuối cùng, chúng tôi bị mắc kẹt với suy nghĩ này:

.Any() có thể được sử dụng, sẽ hoạt động tốt, nhưng không rõ ràng về ý định của lập trình viên, và trường hợp đó không nên sử dụng.

Nhưng chúng tôi cảm thấy như thế này không thể đúng; chúng ta phải thiếu một cái gì đó

Có phải chúng ta không?

c#

 

array

 

list

 

Cát cát

nguồn


40

theo cách nào là ít rõ ràng hơn về ý định?

jk.


35

Tôi thách thức yêu cầu của bạn Any()chưa rõ ràng: Any()dường như rõ ràng hơn đối với tôi, đặc biệt là với tình trạng lambda. Dịch mã sang tiếng Anh trong đầu tôi, if(MyList.Count(o => o > 10) > 0)trở thành “Số lượng vật phẩm có lớn hơn 10 hơn 0 không?” trong khi if(MyList.Any(o => o > 10))trở thành “Có mục nào lớn hơn 10 không?”

BlueRaja – Daniel Pflughoeft


3

@SargeBorsch – chỉ khi bạn thích đặt tên Heskel / chức năng, mà hầu hết mọi người không làm.

Davor Ždralo


4

@ BlueRaja-DannyPflughoeft tôi đồng ý. Tôi nghĩ bất kỳ điều gì rõ ràng hơn vì nó loại bỏ một thứ có thể được coi là một con số ma thuật.

Andy


2

@SargeBorsch: SQL song song AnyExists. Tên Linq có lẽ được lấy cảm hứng nhiều hơn bởi Haskell và Python cũng có bất kỳ / tất cả các chức năng.

JacquesB

Chuyên mục: Kiến thức

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button