如何在 LINQ 中编写 for 循环
How to write a for loop in LINQ
有一个问题困扰着我。我正在读取一个包含坐标(经度和纬度)的文件。
文件内容:50.29264389999999,18.91857099999993;50.0347499,21.967057000000068;54.4547473,17.042384500000026;
我做了一个class坐标
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 循环?
好的,让我们尝试对每个坐标进行一次选择
File.ReadAllText(filepath).Split(';')
为了阐明您的代码,请在您的坐标 class 中添加一个新函数,如下所示
public Coordinatex(string[] s){this.Longitude = double.Parse(s.First());this.Latitude = double.Parse(s.Last());}
然后将所有的items通过spliting和casting to double作为坐标对象,所以结果可能是这样的
File.ReadAllText(filepath).Split(';').Select(x => new Coordinatex(x.Split(',')));
希望这对你有用
有一个问题困扰着我。我正在读取一个包含坐标(经度和纬度)的文件。
文件内容:50.29264389999999,18.91857099999993;50.0347499,21.967057000000068;54.4547473,17.042384500000026;
我做了一个class坐标
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 循环?
好的,让我们尝试对每个坐标进行一次选择
File.ReadAllText(filepath).Split(';')
为了阐明您的代码,请在您的坐标 class 中添加一个新函数,如下所示
public Coordinatex(string[] s){this.Longitude = double.Parse(s.First());this.Latitude = double.Parse(s.Last());}
然后将所有的items通过spliting和casting to double作为坐标对象,所以结果可能是这样的
File.ReadAllText(filepath).Split(';').Select(x => new Coordinatex(x.Split(',')));
希望这对你有用