c#里如何将这组数据中经度和纬度进行排序,并取其中的最大最小值当作画图时的区间?

图片说明
就这种数据,已经可以在winform里读取了,如何将经度和纬度单独进行排序,并将最大最小值取出来。

界面上放一个按钮,代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Q778681
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofn = new OpenFileDialog();
            if (ofn.ShowDialog() == DialogResult.OK)
            {
                var data = File.ReadAllLines(ofn.FileName).Skip(1).Where(x => x != "")
                    .Select(x => Regex.Replace(x, "\\s+", "\t").Split('\t').Take(3).Select(y => double.Parse(y)).ToArray());
                var lamax = data.Select(x => x[0]).Max();
                var lamin = data.Select(x => x[0]).Min();
                var lngmax = data.Select(x => x[1]).Max();
                var lngmin = data.Select(x => x[1]).Min();
                MessageBox.Show(string.Format("lamax={0}, lamin={1}, lngmax={2}, lngmin={3}", lamax, lamin, lngmax, lngmin));

            }
        }
    }
}

图片说明


List<List<int>> data = new List<List<int>>();
            data.Add(new List<int> { 1, 8, 3 });
            data.Add(new List<int> { 7, 5, 9 });
            data.Add(new List<int> { 4, 2, 6 });

                        //按纬度排序
            data.Sort((p,q)=> {
                if (p[0] == q[0])
                    return 0;
                return p[0] < q[0] ? -1 : 1;
            });

           //输出最小和最大的纬度
           Console.WriteLine($"MIN:{data.First()[0]} MAX:{data.Last()[0]}");


                        //按经度排序
            data.Sort((p, q) => {
                if (p[1] == q[1])
                    return 0;
                return p[1] < q[1] ? -1 : 1;
            });
                        //输出最小和最大的经度
            Console.WriteLine($"MIN:{data.First()[1]} MAX:{data.Last()[1]}");

用Linq对数据进行排序就可以了

先用SteamReader一行一行读出来,然后再排序