Csharp/C#教程:如何在C#中截断列表?分享


如何在C#中截断列表?

我知道在python中你可以做类似myList[1:20]东西,但C#中有类似的东西吗?

 var itemsOneThroughTwenty = myList.Take(20); var itemsFiveThroughTwenty = myList.Skip(5).Take(15); 

您可以使用List.GetRange()

 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

(0)
上一篇 2021年11月22日
下一篇 2021年11月22日

精彩推荐