1

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

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

我在研究这个并将其放入计算术语时遇到了问题,我非常感谢您的知识和时间。

4

1 回答 1

3

你可以使用一点 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);
于 2013-05-11T19:01:28.193 回答