Ich habe einige Fahrzeuginformationen, die ich in einer E-Mail senden möchte. Ich habe alle Code funktioniert, aber die Informationen sind ein Problem. Jedes Fahrzeug hat eine Checkliste und diese Checkliste wird per E-Mail verschickt. Also gehe ich durch die Liste und erhalte den Fehler und den Kommentar.String auf ein festes Leerzeichen setzen?
foreach (var item in chkList.CheckItems)
{
if (item.Defect == true)
{
defect += string.Format("{0,-40} {1}\n", item.ItemTitle, item.Comment);
}
}
if (hasDefect == true)
{
Utils.ChecklistSendMail("Checklist", ToAddresses.Split(';'),
"Vehicle Reg: " + reg + "\n" +
"Checklist No: " + chkList.CheckListNo + "\n"+
"Date: " + ChecklistDate.ToShortDateString() + "\n" +
"Defects: Comments: " + "\n" +
defect);
}
E-Mail sieht dann wie folgt aus:
Vehicle Reg: XLZ 8194
Checklist No: 0
Date: 22/03/2016
Defects: Comments:
Vehicle Secure comment1
Brakes comment2
ich die Mängel wollen und die Kommentare wie folgt dargestellt werden:
Defects: Comments:
Vehicle Secure comment1
Brakes comment2
Da Vehicle Secure
länger als Brakes
der Kommentar sein wird weiter geschoben. Aber gibt es eine Möglichkeit, den String an einer bestimmten Position zu fixieren, egal wie lange das erste Wort ist?
EDIT
Code sieht nun wie folgt aus:
string defect = "";
string comment = "";
string aheading = "Defects:";
string bheading = "Comments:";
foreach (var item in chkList.CheckItems)
{
if (item.Defect == true)
{
defect += item.ItemTitle;
comment += item.Comment;
}
}
string result = aheading.PadRight(20, ' ') + bheading.PadRight(20, ' ') + Environment.NewLine +
defect.PadRight(20, ' ') + comment.PadRight(20, ' ') + Environment.NewLine;
Aber die Ausgabe sieht wie folgt aus:
Defects: Comments:
Vehicle SecureBrakestest1test2
Sie können Tabs verwenden: '„\ t“', aber unter Verwendung von HTML in Ihrer E-Mail wäre besser. – user1666620
Ich denke, die E-Mail im HTML-Format zu senden wäre die beste Lösung – Pikoh
@ user1666620 sein, wie würde ich html hier benutzen? – user123456789