2010-08-12 40 views
1

我有一個數組包含不同的數據塊,我必須提取包含日期和小時的塊。我怎麼能這樣做?比較數組格式

string[] s={"File", "Block", "Detected:", "2010-08-11", "11:48:50", etc...} 

的日期和時間是不是始終在同一位置,但他們也有相同的格式

+2

可以重新格式化你的代碼?它看起來不正確:(1)你正在給一個字符串數組分配一個字符串,(2)嵌套的雙引號看起來不正確。 – Heinzi 2010-08-12 10:18:47

+0

請更好地描述問題,因爲不清楚你想要得到什麼...只是從那個日期開始?或者包含日期塊的s?爲了獲取日期,如果它的格式相同,你可以使用一些正則表達式。參見http://gsharper.blogspot.com/2007/03/hi-since-i-always-forget-this-one-ill。 HTML來得到我的意思。 – 0x49D1 2010-08-12 10:19:56

+0

請格式化您的代碼。也把它放到一個C#文件中,讓編譯器幫你把它變成一行有效的C#代碼。這將有助於找到一個好的答案。 (好問題=>很好的答案) – Manfred 2010-08-12 10:20:48

回答

0

既然你知道,日期和時間將在陣列內的某個位置,你可以遍歷通過陣列並尋找看起來像某個日期或時間的東西。例如:

foreach (str in s) { 
    if (Regex.IsMatch(str, @"\d\d\d\d-\d\d-\d\d")) { 
     // found the date 
    } 
} 

,或者使用LINQ:

string myDate = (from str in s 
       where Regex.IsMatch(str, @"\d\d\d\d-\d\d-\d\d") 
       select str).First(); 

爲了識別時,可以使用正則表達式\d\d:\d\d:\d\d

(所有測試的代碼,因爲我沒有Visual Studio中可用的現在。)

0
 string[] sArr = { "File", "Block", "Detected:", "2010-08-11", "11:48:50", "29.01.1987 12:23" }; 

     foreach (var s in sArr) 
     { 
      DateTime d; 

      if (DateTime.TryParse(s, out d)) 
      { 
       Console.WriteLine(d); 
      } 
     }