如何在C#中截断列表?
我知道在python中你可以做类似myList[1:20]
东西,但C#中有类似的东西吗?
var itemsOneThroughTwenty = myList.Take(20); var itemsFiveThroughTwenty = myList.Skip(5).Take(15);
您可以使用List
:
var subList = myList.GetRange(0, 20);
来自MSDN:
在源
List
创建一系列元素的浅表副本。
public List
GetRange(int index, int count)
如果您确实要截断列表而不是复制,这可能对提高效率有所帮助。 虽然python示例制作副本,但原始问题实际上是关于截断列表。
给定List <>对象“列表”,你想要第1到第20个元素
list.RemoveRange( 20, list.Count-20 );
这样就可以了。 这仍然是O(n),因为必须删除对每个对象的引用,但应该比任何其他方法快一点。
sans LINQ quicky …
上述就是C#学习教程:如何在C#中截断列表?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
while (myList.Count>countIWant) myList.RemoveAt(myList.Count-1);
public static IEnumerable MaxOf (this IEnumerable source, int maxItems) { var enumerator = source.GetEnumerator(); for (int count = 0; count <= maxItems && enumerator.MoveNext(); count++) { yield return enumerator.Current; } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/958421.html