2014-01-25 23 views
0

我有一個包含設置程序的文件,像這樣認沽設置成不同的字符串

setting1;value1; 
setting2;value2; 
setting3;value3; 

我想遍歷這些行,指定從設置1值1到名爲相同的(設置1)串。所以字符串值將是value1 ..希望你能得到我?

我該怎麼做?

謝謝!

回答

1

最明智的辦法就是千卡存儲在詞典:

// untested 
Dictionary<string,string> settings = 
    File.Readlines("filename") 
    .Select(line => line.Split(";")) 
    .ToDictionary(parts => parts[0], parts => parts[1]); 

// usage: 
string value1 = settings["setting1"]; 

如果你真的想他們都分配給命名字段或屬性(但不包括:變量)一氣呵成,那麼你就需要反思。

+0

謝謝你,我甚至不知道字典!確實是一件非常好的事情!我對C#還是比較陌生的,但是這是一個偉大的語言。 –

1

你在閱讀很多這些嗎?如果只有一對夫婦,變量可能會起作用,但如果有很多,字典或類似的可能是一個不錯的選擇。 http://msdn.microsoft.com/en-us/library/xfhwa508%28v=vs.110%29.aspxhttp://www.dotnetperls.com/dictionary

你只需要改變你的循環來添加一個新的字典條目 - 使用'設置'作爲鍵和值作爲值。

+0

只有大約15個不同的設置,所以我可能只是將它們手動添加爲字符串..但是,如何用字符串名稱替換Properties.Settings.Default [phraseArr [0]]?像這樣的東西我想,但不知道:'string [phraseArr [0]] = phraseArr [1];' –

+0

這將無法正常工作或編譯。如果這些設置需要在程序中使用,並且需要使用一致的名稱,並且您不想使用現有的數據結構,則可以考慮創建一個新類來存儲它們。一個簡單的類有一些屬性來設置和獲取它們。然後,您將在循環之前創建該類,並在循環中設置屬性。如果你想以這種方式使用它,那麼你需要事先知道設置的名稱以及你想設置它們的位置。您需要使用switch語句才能設置它們(切換到phraseArr [0])。 –