从字符串创建对象
本文关键字:创建对象 字符串 | 更新日期: 2023-09-27 17:58:28
我从文本中提取4个字符串,然后我想创建一个具有属性的对象,使用第一个字符串作为对象名称,其余字符串作为属性:
public void Load()
{
string line = File.ReadAllText(path);
foreach (var item in line)
{
string objectname = line.Split(':', '#')[1];
string Name = line.Split('$', ':')[2];
string Number = line.Split(':', '%')[3];
string Addres = line.Split(':', '&')[4];
StringBuilder StringBuilder = new StringBuilder();
}
}
我应该使用StringBuilder
吗?如何?
如果您的意思是基于动态数据设置属性值,则可以使用反射。
假设这是你的班级:
public class Contact
{
public string Name { get; set; }
public string Number { get; set; }
public string Address { get; set; }
}
这是文本文件的可能格式:
姓名=约翰$地址=加拿大$号码=111号码=333$姓名=Bob$地址=
然后,这样的代码将迭代这些行,并根据值为每个行创建Contact
的实例:
string[] lines = File.ReadAllLines(path);
foreach (string line in lines)
{
Contact contact = new Contact();
string[] parts = line.Split('$');
foreach (string part in parts)
{
string[] temp = part.split('=');
string propName = temp[0];
string propValue = (temp.Length > 1) ? temp[1] : "";
contact.GetType().GetProperty(propName).SetValue(contact, propValue, null);
}
}
在上面的两行示例中使用它将创建两个具有给定细节的实例。