您可能要查找的是格式字符串中的對齊參數。 I .: .:
string s = String.Format("{0,-20}{1,-20}{2,-20})", "one", "two", "three");
將呈現三個相等的列,每個20個字符左對齊(當您刪除減號時爲右對齊)。使用它可以在純文本中創建漂亮的列,並僅使用您的數據。
您的編輯後:
// loop through your data and find the largest common size (note: you can use LINQ)
int maxCol1 = 0;
int maxCol2 = 0;
foreach(item in yourData)
{
maxCol1 = item.Col1 > maxCol1 ? item.Col1 : maxCol1;
maxCol2 = item.Col2 > maxCol2 ? item.Col2 : maxCol2;
}
// create formatting strings, add all sizes:
string line = new String('-', 2 + maxCol1 + maxCol2 + nr of columns ...);
string formatString = String.Format(
"|{{0,-{0}}}|{{1,-{1}}}|{{2,-{2}}}|)",
maxCol1,maxCol2 ...);
// create your text-only mail neatly formatted
yourStringWriter.WriteLine(line);
foreach(item in yourData)
{
yourStringWriter.WriteLine(String.Format(formatString, item.Col1, item.Col2);
yourStringWriter.WriteLine(line);
}
以上將輸出以下(與你的屬性取代了臭名昭著的Col1中,col2的,如姓名,地址等):
----------------------
|one |two |three |
|four |five |six |
|seven |eight |nine |
----------------------
需要更多的信息。你的對象包含什麼樣的東西,你想如何格式化等等...... – ZombieSheep 2010-07-28 07:47:09
如果有答案,確定它會被接受;)如果答案是「這是不可能的」,不要認爲這是一個好主意接受它。 – Zelid 2010-07-28 08:18:15