我只是附上一張圖片以供參考。我很難過。在調試器中,這些值絕對相等,但Find<T>
仍然返回null,並且Exists<T>
仍然返回false。供參考:UserRepository
器具IEnumerable<T>
其中T
是DomainUser
。List.Find <T>()即使謂詞匹配返回null
6
A
回答
14
的問題是,CommandArgument
類型是object
,所以它的執行基準身份檢查。 (我很驚訝,這是不是給你一個編譯時警告。)
你既可以投CommandArgument
到string
,或使用Equals
:
u => u.Username == (string) args.CommandArgument
或
u => Equals(u.Username, args.CommandArgument)
(使用靜態的Equals
方法這種方式意味着即使對於使用null
用戶名的用戶也是如此,不像u.Username.Equals(args.CommandArgument)
。)
我不會序列轉換到一個列表雖然 - 我只是使用LINQ來代替:
DomainUser toRemove =
repo.FirstOrDefault(u => u.Username == (string) args.CommandArgument);
+0
感謝您指出我可以在不調用ToList的情況下使用'FirstOrDefault'。我想我只查看過'Control'(它是'String')而不是'RepeaterCommandEventArgs'的'CommandArgument'類型。 – tuespetre
5
你試過:
u.Username.Equals(args.CommandArgument)
相關問題
- 1. 的NSSet使用謂詞返回對象匹配給定類
- 2. 查找匹配的謂詞。謂詞的謂詞?
- 3. 謂詞返回。 Prolog
- 4. ObjcMongoDB keypath謂詞匹配nsdate
- 5. 謂詞子查詢通過匹配標籤返回項目
- 6. 謂詞多個返回值
- 7. EKEvent.notes返回(null),即使EKEvent.hasNotes返回YES
- 8. 如果list.Find()返回null.code返回異常
- 9. Orientdb與OCommandSQL匹配返回null頂點
- 10. node.setAttribute('attName',null)返回類型不匹配
- 11. JavaScript匹配函數返回null
- 12. 二郎 - 模式匹配謂詞
- 13. 如何檢查項目匹配謂詞
- 14. 某些EKEvents與謂詞不匹配
- 15. ANTLR的語法謂詞不匹配
- 16. 從搜索查詢返回匹配詞
- 17. javascript匹配返回詞邊界
- 18. 計劃 - 謂詞獲取null
- 19. 異步返回null即使使用AsyncTask.Status.FINISHED
- 20. Breeze謂詞:column = null vs column IS NULL
- 21. IndexOf謂詞?
- 22. 從RxJS過濾器()謂詞返回Observable
- 23. xquery返回兩個謂詞的元素?
- 24. 從Prolog的謂詞中「返回」列表
- 25. Java8謂詞如果有其他返回
- 26. 複合謂詞不返回結果
- 27. list.find question
- 28. Application.Current.Windows.Cast <Window>()返回null
- 29. 使用正則表達式匹配字符串返回null
- 30. 爲什麼`返回$ foo if/pattern /;`返回$ foo,即使$ foo匹配模式?
嘗試轉換爲字節數組和檢查字節碼。我猜他們中的一個有一個附加的'0'字節。 – Alex