0

我从文本中提取 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这个吗?如何?

4

1 回答 1

2

如果您的意思是根据动态数据设置属性值,则可以使用反射。

假设这是您的课程:

public class Contact
{
    public string Name { get; set; }
    public string Number { get; set; }
    public string Address { get; set; }
}

这是文本文件的可能格式:

姓名=约翰$地址=加拿大$号码=111
号码=333$姓名=鲍勃$地址=

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

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

于 2013-02-10T13:43:27.860 回答