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 つの項目が含まれていることを確認してください。