我面临的问题是在返回类型列表的方法中添加值。我从另一个班级发送价值。当我想从数组输入值到另一个类的方法时,我给了我一个配对错误。
这是我正在使用的代码:(我要发送数据的类)
public partial class _Default : System.Web.UI.Page
{
public static double GetDistance()
{
string[] rep = new string[] { "51.48797159999999", "-0.16511850000006234", "51.492172", "-0.16144499999995787"};
List<getLatLong> lst = new List<getLatLong>();
for (int i = 0; i < rep.Length; i++)
{
lst.Add(new getLatLong { Lat = rep[i], Lng= rep[i + 1] }); //i am getting the error over here
i++;
}
}
}
class getLatLong是我要发送的类,并为其返回类型列表方法添加值:
public class getLatLong
{
public getLatLong()
{
//
// TODO: Add constructor logic here
//
}
private List<double> lat;
public List<double> Lat
{
get { return lat; }
set { lat = value; }
}
private List<double> lng;
public List<double> Lng
{
get { return lng; }
set { lng = value; }
}
}
答案 0 :(得分:2)
代码不会编译,因为String
不是List<double>
且编译器不知道如何进行转换。从技术上讲,您需要做的就是初始化对象,如:
lst.Add(new getLatLong {
Lat = new List<double>() {Double.Parse(rep[i])},
Lng = new List<double>() {Double.Parse(rep[i + 1])}
});
代码应该编译。也就是说,有很多地方代码并没有完全合理。例如,为什么您的坐标类名为getLatLong
,为什么该类包含双精度列表而不仅仅是两个双精度值?在修复编译器错误之前,您可能需要考虑其中的一些事情。祝你好运!祝你好运!
注意:如果您有许多GEO坐标类型的事情要做,您可以考虑引用预先构建的库,例如GeoSpatial。
答案 1 :(得分:1)
由于类型不兼容,代码无法编译:
public static double GetDistance()
{
double[] rep = new double[] { 51.4879716, -0.16511850, 51.492172, -0.161445 };
List<getLatLong> lst = new List<getLatLong>();
for (int i = 0; i < rep.Length; i++)
{
lst.Add(new getLatLong {
Lat = new List<double> {rep[i]},
Lng = new List<double> {rep[i + 1]}
});
i++;
}
}