从字符串数组中读取数据点



我有一个包含如下数字的文本文件:

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:UsersFarhan AfzalDownloadsdata_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();

相关内容

  • 没有找到相关文章

最新更新