如果有人能告诉我拆分包含文本数据的列表的最佳方法,我将非常感激。当前程序读取文本文件并将值存储到列表中,行/数据的数量不是恒定的,所以我想以百分比形式分割完整列表,如果可能的话,例如前15%=开始,接下来的70%=中间,最后是15%=结束。
我在研究这个问题并将其纳入计算术语时遇到了问题,我非常感谢您的知识和时间。
答案 0 :(得分: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);
您还可以使用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);