将列表分成开始、中间和结束的最好方法
本文关键字:结束 方法 中间 列表 开始 | 更新日期: 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);
参见Take
和Skip
方法。
您也可以使用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);