从字符串创建对象

时间:2013-02-10 13:22:50

标签: c#

我从文本中提取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吗?怎么样?

1 个答案:

答案 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);
    }
}

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