从字符串数组中读取数据点
本文关键字:数据 读取 字符串 数组 | 更新日期: 2023-09-27 18:09:34
我有一个包含如下数字的文本文件:
84 152 100 52 95 186 169 106 37
86 149 101 56 93 181 171 116 37
84 152 100 52 95 186 169 106 37
86 149 101 56 93 181 171 116 37
84 152 100 52 95 186 169 106 37
86 149 101 56 93 181 171 116 37
84 152 100 52 95 186 169 106 37
86 149 101 56 93 181 171 116 37
是否有办法读取2个数据点,如(84,152),然后(100,52)?
string[] lines = File.ReadAllLines(@"C:'Users'Farhan Afzal'Downloads'data_1_2.txt");
string[] line = lines.Select(l => String.Join(" ", l.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))).ToArray();
var lines = File.ReadAllLines(@"C:'items.txt");
var points = new List<Tuple<int, int>>();
var items = lines.SelectMany(ln => ln.Split(new[] {' '}).Select(n => Convert.ToInt32(n)))
.ToList();
for (int i = 0; i < items.Count(); i+=2)
{
int second = (i + 1) < items.Count() ? items[ i + 1] : Int32.MinValue;
points.Add(Tuple.Create(items[i], second));
}
TODO: error/input format handling
使用MoreLINQ Batch(),这将只是
items.Batch(2)
借助副作用
int dummy = 0;
var result = list.GroupBy(x => dummy++%2)
.Select(g => g.ToArray())
.ToList();
和一个没有副作用的长版本
var result = list.Select((x,i)=>new {item=x,index=i})
.GroupBy(x => x.index%2)
.Select(g => g.Select(x=>x.item).ToArray())
.ToList();