查找列表<t>倒数第二个元素</t>

时间:2013-12-05 22:22:17

标签: c#-4.0

我想找到列表中第二个到最后一个项目。一篇文章提出了我使用的搜索术语,他们建议获取最后一个元素的索引然后备份一步。这真的是这样做的方式....?看起来有点kludgy /硬编码。也许我太偏执了?

int _lstItemIdx = List<MyObj>.IndexOf(List<MyObj>.Last());
int _sndLstItmIdx = (_lstItemIdx - 1);

谢谢

1 个答案:

答案 0 :(得分:13)

出了什么问题:

var result = myList[myList.Count-2];

当然,如果您的列表没有2个元素,则需要进行适当的异常处理。

您可以将其转换为扩展方法:

public static T SecondToLast<T>(this IList<T> source)
{
    if (source.Count < 2)
        throw new ArgumentException("The list does not have at least 2 elements");

    return source[source.Count - 2];
}