我正在尝试获取BITMAPV5HEADER
中的最后10个对象。
案例:arraylist
充满Arraylist
和objects[ChartObjectsInt]
,索引来自0-N,我想获得最后10个人(N-10),以及最后10个对象我想调用该对象的函数;比如[ChartObjectsReal]
有人可以帮忙吗?
我到目前为止的代码:
ChartObjectsInt.getLabelName();
答案 0 :(得分:2)
为什么不使用List而不是ArrayList,如果这样做,从列表中获取最后10个元素会更容易。
例如: var lastTenProducts = products.OrderByDescending(p => p.ProductDate).Take(10);
//这里的产品是List
答案 1 :(得分:1)
正如其他人已经说过的那样,我会使用List<T>
因为ArrayList
实际上已被弃用,因为它存在于C#没有泛型的时候。
话虽如此,你可以编写一个适用于任何大小的列表的函数,然后采取许多这样的函数
public List<T> GetLastX<T>(List<T> list, int amountToTake)
{
return list.Skip(list.Count - amountToTake).ToList();
}
答案 2 :(得分:1)
如果您不想使用LINQ
for (var i = Math.Max(arraylistMonitor.Count - 10, 0); i < arraylistMonitor.Count; i++)
{
YourFunctionCallHere(arraylistMonitor[i]);
}
上面的代码将通过将ArrayList
设置为适当的起始索引来循环遍历i
的最后10个项目 - Math.Max
调用ArrayList
以防var last10 = arraylistMonitor.Cast<object>().Reverse().Take(10);
1}}中包含9个或更少的元素。
如果您愿意使用LINQ
ToList
会做你想要的。 您可能还希望在Take(10)
之后添加last10
,具体取决于您希望如何使用IEnumerable<object>
。
首先它将其转换为IEnumerable
,然后向后经过last10
,直到它有(最多)10个项目。
如果您具体希望ArrayList
成为var last10 = new ArrayList(arraylistMonitor.Cast<object>().Reverse().Take(10).ToList());
(我不建议),请使用:
background-image: url("Linkedinlogo2.jpg");