2013-11-14 122 views
3

目前我試圖在控制檯中打印一些信息,但我試圖給所有結果填充相同的內容。從C#控制檯左邊填充

這裏舉一個例子,你可以看到CurrentBuildNumber結果有一個/ t到很多。/t只是爲了將所有東西都對齊,它可以是其他任何東西。 Example screenshot

所以,我需要一個「固定」的填充:[結果]。我如何在代碼中正確執行此操作?

謝謝!

代碼:

 RegistryKey registryKeys = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"); 

     foreach (string registryKey in registryKeys.GetValueNames()) 
     { 
      Console.WriteLine(registryKey + "\t\t: " + registryKeys.GetValue(registryKey)); 
     } 
+0

在截圖? :P等等,我會補充。 – Wouter0100

+1

謝謝。 [幫助]頁面特別說明:「關於您編寫​​的代碼問題的問題必須描述具體問題 - 並且**包含有效的代碼以再現問題本身**。請參閱SSCCE.org以獲取指導。」 (**強調我的**)。屏幕圖像不是「問題本身的代碼」(僅供將來參考)。 :) –

+0

對不起!感謝您的通知:) – Wouter0100

回答

5

使用.PadRight上的標籤,例如(30)。

+0

謝謝!這回答了我的問題:)。該死的,我沒有在互聯網上找到這個! – Wouter0100

9

使用的String.format()或只是Console.Write(),因爲它具有用於格式的支持

const string format = "{0,-32} :{1}"; 

Console.WriteLine(format, "Key", "Value") 

格式值-32意味着鍵應該採取32個位置並對齊,以左邊。

1

試試這個:

var key = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"; 
RegistryKey registryKeys = 
    Registry.LocalMachine.OpenSubKey(key); 
var maxLength = registryKeys.GetValueNames().Max(n => n.Length); 
foreach (string registryKey in registryKeys.GetValueNames()) 
{ 
    Console.WriteLine("{0}:{1}", 
     registryKey.PadRight(maxLength), 
     registryKeys.GetValue(registryKey)); 
}