0

こんな感じのアイテムリストを設定しています。

List<BankInfo> all_branches = new List<BankInfo>();
Equipment.set_slot = "Mail";
all_branches.Add(new BankInfo
{
    name = "West Bank",
    city = "San Francisco",
    owner = new Person { name = "Jeff Bridges", age = 55 }
});
all_branches.Add(new BankInfo
{
    name = "East Bank",
    city = "Concord",
    owner = new Person { name = "Upton Sinclair", age = 102 }
});

文字通り何百ものこれらを書くことは非常に面倒であり、私はこのように書くことができればもっと好きです

--
Name: West Bank
City: San Francisco
Owner: Jeff Bridges, 55
--
Name: East Bank
City: Concord
Owner: Upton Sinclair, 102

そのようなことをする方法はありますか?

少なくとも、$ITEM のようなシンボルが all_branches.Add(new BankInfo { なので、$ITEM (C++ のマクロのように) を実行できるようにする方法は (C# で) ありますか?

4

1 に答える 1

0

あなたが意味することは、すべてのプロパティの割り当てを処理する関数であることを理解しています:

private List<BankInfo> addToBankInfo(string name, string city, string owner_name, int owner_age, List<BankInfo> all_branches)
{
     return all_branches.Add(new BankInfo { name = name, city = city, owner = new Person { name = owner_name, age = owner_age } });
}

あなたが呼び出すことができるもの:

List<BankInfo> all_branches = new List<BankInfo>();
Equipment.set_slot = "Mail";
try
{
    using (System.IO.StreamReader sr = new System.IO.StreamReader("input_file.txt"))
    {
        string line;
        while ((line = sr.ReadLine()) != null)
        {
            if(line != null && line.Trim().Length > 0 && line.Contains(","))
            {
                string[] temp = line.Split(',');
                if(temp.Length >= 4)
                {
                    all_branches = addToBankInfo(temp[0], temp[1], temp[2], Convert.ToInt32(temp[3]), all_branches);
                }
            }
        }
    }
}
catch
{
}

上記の例では、すべての入力がコンマで区切られた TXT ファイルにあると想定しています。正確な入力形式に関する詳細情報を提供していただければ、それに応じてコードを更新できます。

于 2013-07-07T09:38:14.747 に答える