1. ホーム
  2. c#

[解決済み] なぜEnumerable.ElementAt()と[]演算子を使い分けるのでしょうか?

2023-08-28 04:32:39

質問

これは馬鹿げた質問のように思えますが、私は答えを見つけられなかったので、ここにあります。)

どちらの場合も、コレクションの境界のチェックに失敗すると "範囲外" という例外が発生します。 これは単なるコーディング スタイルの好みなのでしょうか?

そして、誰かが例を必要とする場合に備えて。

List<byte> myList = new List<byte>(){0x01, 0x02, 0x03};
byte testByte = myList.ElementAt(2);

byte testByte = myList[2];

どのように解決するのですか?

なぜなら Enumerable の方がより一般的であり、enumerableで表現されるコレクションはインデクサを持たないかもしれないからです。

しかし、もしそうであれば ElementAt() を使うと、おそらく効率が悪くなります。