2010-10-12 29 views
-1

比方說,我有這樣的對象:字符串轉換爲模擬

public struct Line 
{ 
    public string Name { get; set; } 
    public int Value { get; set; } 
    public string Alias { get; set; } 
} 

而且我有下面這個語法行的文件:

garbagedata|moregarbagedata|Name|garbagedata3|Value|garbagedatamaximums|Alias\n 

注意moregarbagedata [X]可能會或可能不存在。正則表達式需要提取組值。

什麼是最容易和最有效的方式將此文件的行轉換爲Line對象的集合?這個集合的順序並不重要。

+0

這是一個正確的解釋說,該文件是位置的「價值」你想存儲在名稱屬性是第三的位置,價值如果第五,並且別名是第七? – 2010-10-12 04:43:02

+0

如果更多的數據可能不存在,您可能會對此感到困惑。你想要位置,還是你想要基於令牌?給我們一個或兩個例子,告訴我們結果應該是什麼。 – SamStephens 2010-10-12 04:50:33

+0

如何判斷垃圾和數據? – 2010-10-12 05:50:19

回答

0

在我看來,這裏有幾個問題需要問。

  1. 你能改變文件格式嗎?
  2. 有沒有辦法,你可以爲鍵/值對指定一個單獨的分隔符? {value:垃圾,別名:someotherGarbage},{value:secondGarbage ....}
  3. 行(Environment.NewLine)是分組唯一的方式嗎?

如果答案1是真, 那麼你可以使用XmlSerializer和序列化和反序列化你的對象來回。

如果2的答案是真的, 那麼你可以看看手動解析文件使用正則表達式或逐行讀取線,只是在尋找價值:然後假定下一個項目是「價值」

如果3的答案是真的, 可能相同的答案爲2

我希望這有助於。