我想找到列表中第二个到最后一个项目。一篇文章提出了我使用的搜索术语,他们建议获取最后一个元素的索引然后备份一步。这真的是这样做的方式....?看起来有点kludgy /硬编码。也许我太偏执了?
int _lstItemIdx = List<MyObj>.IndexOf(List<MyObj>.Last());
int _sndLstItmIdx = (_lstItemIdx - 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];
}