2017-09-26 85 views
-1

我想將DateTime.Now方法轉換爲字符串數組。我擡頭看着StackOverflow並找到以下解決方案。將DateTime.Now轉換爲數組

DateTime dateTime = DateTime.Now; 
string dateTM = dateTime.ToString("dd MMMM yyyy, HH:mm"); 
string[] dT = dateTM.Select(str => str.ToString()).ToArray(); 
File.WriteAllLines(MainPath + @"Log\Client-side.txt", dT); 

的問題是,我花了3個一樣語句行申報,所以我在想,如果有任何的方式來縮短? 我知道這是一些基本的編碼,但儘管如此,我仍然無法在互聯網上找到明確的答案。

希望你能幫助我!

+2

雖然你當然可以將每個代碼縮短爲一行,但它不會更好地保護你的代碼,尤其是它只會更難理解。你的代碼非常簡單易懂,爲什麼要通過任何可能的修改來混淆它。 – HimBromBeere

+0

@HimBromBeere是真實的,但我仍然想知道它是否可以更短,同時也很可讀。 – Selrygoxeser

+0

你真的找到了'File.WriteAllLines(MainPath + ...,DateTime.Now.ToString(...)。Select(x => x.ToString())。ToArray()'更好嗎? – HimBromBeere

回答

0

你可以把它凝結成類似的東西;

string[] segments = DateTime.Now.ToString("dd MMMM yyyy HH:mm").Split(' '); 

編輯

更新補充說,如果你想在一個字符串數組中的所有字符,那麼你可以參考字符串等;

string test = "Hello world"; 
char character = test[2]; // contains 'l' 

字符串已經是有效的字符數組,可以被引用。

這可能會修改您現有的代碼;

string segments = DateTime.Now.ToString("ddMMMM,yyyyHH:mm"); 
File.WriteAllLines(MainPath + @"Log\Client-side.txt", segments.Select(c => c.ToString()).ToArray()); 
+3

從OP代碼他希望數組中的每個單個字符,而不僅僅是組。不要問我爲什麼*。 – HimBromBeere

+0

@HimBromBeere有沒有其他的方式來寫它的內容文件?而不是.WriteAllLines方法? – Selrygoxeser

+0

試試WriteAllText –

0

如果你只想寫一個時間戳到一個文件就用File.WriteAllText

DateTime dateTime = DateTime.Now; 
string dateTM = dateTime.ToString("dd MMMM yyyy, HH:mm"); 
File.WriteAllText(MainPath + @"Log\Client-side.txt", dateTM); 

要檢索,有File.ReadAllText

您也可以使用File.WriteAllLines這樣

using System.Collections.Generic; 

... 

List<string> lines = new List<string>(); 
lines.Add(dateTM); 
lines.Add("Hello World!"); 

File.WriteAllLines(MainPath + @"Log\Client-side.txt", lines); 
+0

thx爲答案! – Selrygoxeser