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、値に基づいて for eachのインスタンスを作成します。

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

上記のサンプル 2 行でこれを使用すると、指定された詳細を持つ 2 つのインスタンスが作成されます。

于 2013-02-10T13:43:27.860 に答える