将字符串数组从WWW转换为Unity3d中的类列表
我在将WWW字符串数组转换为类列表时遇到了一些麻烦。我想要做的是实例化一个预制件,其中包含许多文本元素。 这是基础类将字符串数组从WWW转换为Unity3d中的类列表
public class VehicleIndex : MonoBehaviour {
public string ID{ get; set;}
public string Make{ get; set;}
public string Model{ get; set;}
public string Year{ get; set;}
public string Mileage{ get; set;}
public VehicleIndex(string id, string make, string model, string year, string mileage)
{
this.ID = id;
this.Make = make;
this.Model = model;
this.Year = year;
this.Mileage = mileage;
}
}
下面是从MySQL数据库获取WWW数据的功能
public List<VehicleIndex> VehicleIndexList = new List<VehicleIndex>(); public string[] VehicleStringArray;
public IEnumerator GetAllVehicles()
{
WWW VehicleData = new WWW ("http://localhost/CMVM/LoadVehicle.php");
yield return VehicleData;
Debug.Log (VehicleData.text);
string TheVehicleData = VehicleData.text;
The information comes back just fine.
if(TheVehicleData[TheVehicleData.Length - 1] == '/')
{
TheVehicleData.TrimEnd('/'); Here I'm removing the delimiter
}
string[] results = TheVehicleData.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < results.Length; i++)
{
Debug.Log (results[i]);
}
VehicleStringArray = results; The results go back into an array
VehicleIndexList = VehicleStringArray.Select(sArr => new VehicleIndex
{
ID=VehicleStringArray[0],
Make=VehicleStringArray[1],
Model=VehicleStringArray[2],
Year=VehicleStringArray[3],
Mileage=VehicleStringArray[4]
}).ToList();
}
它看起来像它应该只是工作,它给人的错误:类型VehicleIndex' does not contain a constructor that takes
0'论据 我错过了什么?我需要为课堂增添些什么吗?一个列表?数组? 感谢您的帮助!对此,我真的非常感激。
ADDITIONAL- 添加对象初始
public VehicleIndex Vi;
然后改变了lambda表达式
VehicleIndexList = VehicleStringArray.Select(sArr => new VehicleIndex {
Vi.ID==VehicleStringArray[0],
Vi.Make==VehicleStringArray[1],
Vi.Model==VehicleStringArray[2],
Vi.Year==VehicleStringArray[3],
Vi.Mileage==VehicleStringArray[4]
}).ToList();
只有这样,才能避免红线是使用双相等。我不确定这是否正确,因为它仍然不能正常工作,我猜不是。
回答:
你有一个构造函数的所有属性作为参数;只是用这个来代替对象初始化:
VehicleIndexList = VehicleStringArray.Select(sArr => new VehicleIndex (
VehicleStringArray[0],
VehicleStringArray[1],
VehicleStringArray[2],
VehicleStringArray[3],
VehicleStringArray[4]
)).ToList();
但是请注意,这contructors通常只需要那些PARAMATERS需要的对象才能正常工作。如果属性值不是必需的,那么移除构造函数并使用初始化语法(new VehicleIndex { }
)代替没有任何问题。
回答:
这基本上是同样的事情,JavaScript的加入()
String.Join Method
以上是 将字符串数组从WWW转换为Unity3d中的类列表 的全部内容, 来源链接: utcz.com/qa/267365.html