我从文本中提取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
吗?怎么样?
答案 0 :(得分:2)
如果您的意思是根据动态数据设置属性值,则可以使用反射。
假设这是你的班级:
public class Contact
{
public string Name { get; set; }
public string Number { get; set; }
public string Address { get; set; }
}
这是文本文件的可能格式:
Name=John$Address=Canada$Number=111 Number=333$Name=Bob$Address=
然后这样的代码将迭代这些行并根据值为每个创建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);
}
}
在上面的示例中使用这两行将创建两个具有给定细节的实例。