C# - リストの最後から2番目の項目を取得する 質問する

C# - リストの最後から2番目の項目を取得する 質問する

C# で書かれたコードがあります。このコードには がありますList<KeyValuePair<int, string>> items。リストの最後から 2 番目の項目を取得しようとしています。しかし、うまくいきません。

もともと、私のコレクションは単なる でしたDictionary<int, string>。その時点では、以下を使用していました。

var nextToLast = items.Reverse().Skip(1).FirstOrDefault();

それはうまくいきました。しかし、itemsは になったのでList<KeyValuePair<int, string>>Reverseメソッドは を返しますvoid。そのため、スキップすることはできません。

List<KeyValuePair<int, string>>C# で最後から 2 番目の項目を取得するエレガントな方法をご存知の方はいませんか?

ループを使用できることはわかっています。ただ、もっと良い方法があるはずだと思っただけです。

ベストアンサー1

をお持ちの場合List<>は、そのCountおよび インデクサー プロパティを使用してみてはいかがでしょうか。

var item = items[items.Count-2];

ただし、リストには少なくとも 2 つの項目が含まれていることを確認してください。

おすすめ記事