给定一个通用类型的IList,其中包含许多项目,是否有任何方法可以“裁剪”此列表,以便仅保留第一个x项目,其余的则丢弃?

最佳答案

现有答案会创建一个新列表,其中包含原始列表中的项的子集。

如果您需要就地截断原始列表,则可以选择以下选项:

// if your list is a concrete List<T>
if (yourList.Count > newSize)
{
    yourList.RemoveRange(newSize, yourList.Count - newSize);
}

// or, if your list is an IList<T> or IList but *not* a concrete List<T>
while (yourList.Count > newSize)
{
    yourList.RemoveAt(yourList.Count - 1);
}

07-24 18:27