Trong C#, tôi có thể sử dụng một cái gì đó như:Kiểm tra một danh sách với giá trị null cho bản sao trong C#
List<string> myList = new List<string>();
if (myList.Count != myList.Distinct().Count())
{
// there are duplicates
}
để kiểm tra các yếu tố trùng lặp trong một danh sách. Tuy nhiên, khi có null
mục trong danh sách, điều này tạo ra kết quả dương tính giả. Tôi có thể làm điều này bằng cách sử dụng một số mã chậm chạp nhưng là có một cách để kiểm tra các bản sao trong một danh sách trong khi bỏ qua các giá trị null với một cách súc tích?
+1 Tôi thích câu trả lời này hơn, có vẻ ngắn gọn hơn đối với tôi. –
'Bất kỳ' vẫn yêu cầu toàn bộ đầu vào được lặp lại ít nhất một lần (để xây dựng nhóm), và một phần của nó được lặp lại lần thứ hai (để kiểm tra độ dài của các nhóm). shortcircuit 'Count' mà không lặp lại) - trong khi nó có thể thực hiện kiểm tra này với * nhiều nhất * một lần lặp của toàn bộ đầu vào. – Rawling
@Rawling Tôi giả định vì Count() được đánh giá là một phần của 'Bất kỳ' - nó sẽ đánh giá nhóm lười biếng - làm thế nào chúng ta có thể kiểm tra điều này? Khá thú vị! –