一個問題困擾著我。我正在閱讀一個具有坐標(經度和緯度)的檔案。
檔案內容:50.29264389999999,18.91857099999993;50.0347499,21.967057000000068;54.4547473,17.042384500000026;
我為坐標做了一個類
internal class Coordinate
{
public double Longitude { get; set; }
public double Latitude { get; set; }
public Coordinate(double longitude,double latitude)
{
this.Longitude = longitude;
this.Latitude = latitude;
}
}
我使用這段代碼來讀取檔案并列出它們。
List<Coordinate> cordinates = new List<Coordinate>();
var items = File.ReadAllText("../../../Files/input-01.txt").Split(new char[] { ',', ';' }).Select(double.Parse).ToList();
for(int i = 0; i < items.Count; i =2)
{
cordinates.Add(new Coordinate(items[i], items[i 1]));
}
該程式有效,但是有沒有辦法在 LINQ 中撰寫這個 for 回圈?
uj5u.com熱心網友回復:
好的,讓我們嘗試選擇每個坐標一次
File.ReadAllText(filepath).Split(';')
為了澄清您的代碼,向您的坐標類添加一個新函式,如下所示
public Coordinatex(string[] s){this.Longitude = double.Parse(s.First());this.Latitude = double.Parse(s.Last());}
然后將所有專案通過拆分和轉換為雙精度物件作為坐標物件,因此結果可能如下所示
File.ReadAllText(filepath).Split(';').Select(x => new Coordinatex(x.Split(',')));
希望這對你有用
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/427136.html
上一篇:C#按模式重新排列串列
下一篇:如何更新具有一對一關系的物體?
