从字符串创建对象

本文关键字:创建对象 字符串 | 更新日期: 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);
    }
}

在上面的两行示例中使用它将创建两个具有给定细节的实例。