获取arraylist中的最后10个对象

时间:2017-09-21 09:42:35

标签: c# arraylist

我正在尝试获取BITMAPV5HEADER中的最后10个对象。

案例:arraylist充满Arraylistobjects[ChartObjectsInt],索引来自0-N,我想获得最后10个人(N-10),以及最后10个对象我想调用该对象的函数;比如[ChartObjectsReal]

有人可以帮忙吗?

我到目前为止的代码:

ChartObjectsInt.getLabelName();

3 个答案:

答案 0 :(得分:2)

为什么不使用List而不是ArrayList,如果这样做,从列表中获取最后10个元素会更容易。

例如: var lastTenProducts = products.OrderByDescending(p => p.ProductDate).Take(10);

//这里的产品是Li​​st

答案 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");