我有一個包含圖形數據是這樣的一個字符串..有效的方式從列表中<string>在C#中提取雙值
string sGraph = "0.05 /m 0.05 /m 0.05 /m 0.05 /m 0.05 /m 0.05 /m 0.05 /m 0.05....... 0.05 /m";
我有一個雙[]或成以提取雙值進一步處理的列表。例如。我使用
List<String> sGraphPoints = Regex.Split(sGraph, " /m").ToList<string>();
檢索字符串列表中的double值。然後,我可以使用字符串列表中的每個值進行進一步處理。有沒有一種有效的方法,我可以這樣做,而不是鑄造每個字符串變量值成雙,如下圖所示...
double[] dGraphPoints = new double[sGraphPoints.Count];
int i = 0;
foreach (string str in sGraphPoints)
{
if (str != "")
{
dGraphPoints[i] = double.Parse(str);
}
else
{
dGraphPoints[i] = 0.0;
}
i++;
}
提前感謝
取決於,你認爲他們是雙打還是不是?如果你這樣做,那麼你必須自然地轉換字符串。另外,當你可以簡單地使用'string.Split'時,正則表達式是不必要的。 –
爲什麼你需要一個有效的方法。除非你使用巨大的列表,否則這應該會很快。一個有效的方法是讀取字符串,直到找到/ m並在/ m之前轉換爲數據爲止,然後再讀取下一個塊,直到您再次找到/ m爲止。 – CodingBarfield
他確實應該使用TryParse,因爲Parse(str)如果該字符串不是數字,則會拋出一個異常,以及大量的數字等。 –