我想從一個列表中獲取一個特定項目的索引值。但函數返回值-1。我可否知道indexof return -1的原因是什麼?C#Indexof返回值-1
回答
IndexOf()
正在返回的原因-1
是因爲您試圖找到的項目不存在於列表中。
根據documentation,IndexOf
將返回「如果找到整個列表中第一次出現的項目的從零開始的索引;否則返回-1」。
您應該仔細檢查調試器,您會發現您試圖找到索引的項目不在您的清單中。
請記住(同樣,這是在文檔中)。 「這個方法使用默認的相等比較器EqualityComparer.Default來確定等於T,這是列表中值的類型。」所以,如果你確信你的項目應該在列表中,你應該看你的類型的EqualityComparer。
我做了一個foreach循環來檢查這個項目是否存在。它確實存在於列表 –
@NGZen閱讀我的最後一段。僅僅因爲你在調試器的列表中看到它,並不意味着你的類型的EqualityComparer發現它們是相等的。 – maccettura
好的,我將通過使用Equals函數來檢查相等性。謝謝 –
- 1. indexOf()函數返回-1值
- 2. Indexof()返回-1
- 3. 爲什麼IndexOf返回-1?
- 4. 代碼 「1個\ u02ff」 .IndexOf( 「1」)返回-1
- 5. Powershell多維數組IndexOf返回-1
- 6. Java indexOf和lastIndexOf返回-1 ??請幫忙
- 7. 爲什麼「[[1,2],[3,4]]。indexOf([1,2])」返回-1?
- 8. Java - arraylist1.get(arraylist2.indexOf(nextCharacter))返回-1
- 9. indexOf即使數組中存在值,也返回-1的數組
- 10. Hashset包含重複的值;另外ArrayList indexOf(string_present_in_list)返回-1
- 11. indexOf方法如何返回falsely值?
- 12. C#ObservableCollection.IndexOf(...)返回-1
- 13. C++ _snprintf返回-1
- 14. List.IndexOf返回1 c#
- 15. 值返回1.#INF000
- 16. 數組包含元素,但IndexOf返回-1
- 17. 所述的IndexOf()方法返回-1的所有時間
- 18. Stump - indexOf在存儲變量上返回-1
- 19. ArrayList.IndexOf在c中返回-1#
- 20. ExecuteStoreCommand返回-1,EntityFramework,C#?
- 21. list.indexOf(數值)返回-1
- 22. @ Html.DropDownList只返回1值
- 23. xquery返回值爲1
- 24. C++返回值
- 25. C#返回值
- 26. 字符串::找到返回值爲-1時,它的預期返回值0 [C++]
- 27. getyx返回-1 -1
- 28. fread()返回值C
- 29. indexOf沒有返回正確的索引
- 30. 爲什麼IndexOf總是返回零?
如果該項目不在列表中,可能會發生這種情況。 – praveen
您是否閱讀過[documentation](https://msdn.microsoft.com/en-us/library/e4w08k17(v = vs.110).aspx)?特別是它所說的部分:「[返回]如果找到整個列表中第一次出現的項目的從零開始的索引; **否則爲-1。**」 –
maccettura
該項目假設獲取索引是在列表 –