将列表分成开始、中间和结束的最好方法

本文关键字:结束 方法 中间 列表 开始 | 更新日期: 2023-09-27 18:13:12

如果有人能告诉我分割包含文本数据的列表的最佳方法,我将非常感激。当前程序读取一个文本文件并将值存储到一个列表中,行数/数据数不是恒定的,所以我想将整个列表按百分比分割,如果可能的话,例如前15% =开始,后70% =中间,最后15% =结束。

  • 附加信息=程序监视运行会话,因此问题的开始(热身),中间(主运行)和结束(冷却)方面。最终,我希望能够将其合并到一个zedgraph中,并展示我在跑步过程中的表现。

我在研究这个问题时遇到了问题,我非常感谢你的知识和时间。

将列表分成开始、中间和结束的最好方法

你可以用一点Linq:

var index1 = (int) Math.Round(array.Length * .15);
var index2 = (int) Math.Round(array.Length * .70);
var start = array.Take(index1);
var middle = array.Skip(index1).Take(index2 - index1);
var end = array.Skip(index2);

参见TakeSkip方法。

您也可以使用ArraySegment<T>类:

var index1 = (int) Math.Round(array.Length * .15);
var index2 = (int) Math.Round(array.Length * .70);
// Replace T with your class name
var start = new ArraySegment<T>(array, 0, index1);
var middle = new ArraySegment<T>(array, index1, index2 - index1);
var end = new ArraySegment<T>(array, index2, array.Length - index2);