Tôi sẽ chỉ đính kèm một hình ảnh để tham khảo về điều này. Tôi đang bối rối. Trong trình gỡ rối, các giá trị chắc chắn bằng nhau, nhưng Find<T>
vẫn trả về giá trị rỗng và Exists<T>
vẫn trả về false. Để tham khảo: UserRepository
thực hiện IEnumerable<T>
trong đó T
là DomainUser
.List.Find <T>() trả về null mặc dù vị từ khớp với
Trả lời
Vấn đề là loại CommandArgument
là object
, vì vậy nó thực hiện một kiểm tra danh tính tham khảo. (Tôi ngạc nhiên đây không phải là cho bạn một cảnh báo thời gian biên dịch.)
Bạn có thể một trong hai diễn viên CommandArgument
để string
, hoặc sử dụng Equals
:
u => u.Username == (string) args.CommandArgument
hoặc
u => Equals(u.Username, args.CommandArgument)
(Sử dụng phương pháp tĩnh Equals
theo cách này có nghĩa là phương thức này sẽ hoạt động ngay cả đối với người dùng có tên người dùng null
, không giống như u.Username.Equals(args.CommandArgument)
.)
tôi sẽ không chuyển đổi các chuỗi vào một danh sách mặc dù - Tôi chỉ muốn sử dụng LINQ thay vì:
DomainUser toRemove =
repo.FirstOrDefault(u => u.Username == (string) args.CommandArgument);
Cảm ơn bạn đã chỉ ra rằng tôi có thể sử dụng 'FirstOrDefault' mà không cần gọi' ToList'. Tôi đoán tôi đã chỉ nhìn vào loại 'CommandArgument' trên' Control' (nó là 'String') và không phải là' RepeaterCommandEventArgs'. – tuespetre
Các bạn đã thử:
u.Username.Equals(args.CommandArgument)
- 1. AccountManager getUserData trả về null mặc dù nó được đặt
- 2. Tại sao solutionBinding() trả về null mặc dù tôi setResolveBindings (true) trên ASTParser của tôi?
- 3. ConfigurationManager.AppSettings trả về null
- 4. Request.URL luôn trả về http mặc dù SSL được bật
- 5. trả về null với PLINQ
- 6. onActivityResult trả về với dữ liệu = null
- 7. Class.getResource() trả về null
- 8. DocumentBuilder.parse (InputStream) trả về null
- 9. getActivity trả về null từ đoạn
- 10. getAnnotations Reflection() trả về null
- 11. SoapClient Trả về "NULL", nhưng __getLastResponse() trả về XML
- 12. System.console() trả về null
- 13. CGBitmapContextTạo trả về NULL
- 14. findViewById trả về null trên <include> xem
- 15. getLayoutParams trả về null?
- 16. Registry.LocalMachine.OpenSubKey() trả về null
- 17. UITextfield.text trả về null
- 18. getView() trả về null
- 19. Sensor.TYPE_ROTATION_VECTOR trả về null
- 20. mapFragment.getMap() trả về null
- 21. pathForResource trả về null
- 22. tuple khớp với null
- 23. getFilesDir() trả về null
- 24. ActivityUnitTestCase getActionBar() trả về null
- 25. classloader.getSystemResourceAsStream trả về null
- 26. getElementById trả về null?
- 27. getSystemResourceAsStream() trả về null
- 28. Url.RouteUrl trả về null
- 29. getLastKnownĐịa điểm từ NETWORK_PROVIDER trên điện thoại trả về null
- 30. ClassLoader getResourceAsStream trả về null
Thử chuyển đổi vào một mảng byte và kiểm tra các byte-mã. Tôi đoán một trong số họ có một byte '0' nối thêm. – Alex