1つの特定の項目のインデックス値を1つのリストから取得しようとしています。しかし、関数は値-1を返しました。 indexof return -1の理由を知ることができますか?C#戻り値のインデックス-1
答えて
理由IndexOf()
がを検索しようとしている項目がリストに存在しないため、-1
を返す理由です。
documentationによると、IndexOf
は、 "見つかった場合は、リスト全体のitemの最初の出現の0から始まるインデックス、それ以外の場合は-1を返します。"
デバッガをステップバイステップで実行すると、というインデックスを検索しようとしているアイテムがリストにないとわかります。
注意してください(また、これはドキュメントにあります)。これは、 "このメソッドは、Tのデフォルトの等価比較子EqualityComparer.Default(リストの値の型)を使用して、等価性を判定します。"あなたの商品がであると確信している場合は、をリストに入れてください。あなたのタイプのEqualityComparerを見てください。
この項目が存在するかどうかを確認するためにforeachループを実行しました。それはリストに存在します –
@NgZen最後の段落を読んでください。デバッガのリストに表示されているからといって、あなたのタイプのEqualityComparerが等しいと判断するわけではありません。 – maccettura
私はEquals関数を使って等値をチェックします。ありがとう –
- 1. C++戻り値
- 2. Java:Alibaba Fastjson decodeUTF8戻り値:インデックスが範囲外-1 springmvc?
- 3. OCTAVE:行、列のインデックス戻り値
- 4. Pandas DataFrame列インデックスの戻り値
- 5. TCLプロシージャの戻り値と戻り値の差1
- 6. C#のBackgroundWorkerの戻り値
- 7. にmysql_affected_rows()戻り値-1
- 8. ASP.net listboxコントロール戻り値-1
- 9. as3合計戻り値1
- 10. 戻り値1行目
- 11. C++ Iterators戻り値の型
- 12. forループの戻り値C
- 13. C++マルチスレッドの戻り値
- 14. Cコードのセグメンテーションフォールト:戻り値
- 15. VS2015 C++コルーチン:promise.get_return_object()戻り値の型とコルーチン戻り値の型
- 16. 1枚の値で右に戻り値
- 17. C++値なしの「戻り値」
- 18. 戻りビット値は、C#
- 19. Malloc in C - 戻り値
- 20. 不正な戻り値:C++
- 21. C#TimerCallback戻り値エラー
- 22. C#並列戻り値
- 23. Moq C#MongoDB FindAsync戻り値
- 24. POST json in C#戻り値
- 25. デフォルトのCのboolean型の戻り関数の戻り値++
- 26. MySQLの戻り値の戻り値
- 27. Cのtypedef関数の戻り値
- 28. C#ジェネリックメソッドの戻り値の型タイプ
- 29. C#の戻り値の型エラー
- 30. C#の:ブール戻り値の型
これは、アイテムがリストにない場合に発生します。 – praveen
[documentation](https://msdn.microsoft.com/en-us/library/e4w08k17(v = vs.110).aspx)を読んだことがありますか?具体的にそれが言う一部:「[戻り値] List全体内の項目の最初に見つかった位置のインデックス、見つかった場合は、**そうでない場合、-1 **。」 –
maccettura
項目がインデックスを取得すると仮定リスト内にある –