4 回答
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
WriteLine()始終在文本后添加新行。所以在你的情況下應(yīng)該是
myF.Write(NamesList.ElementAt(i));
myF.Write(" ");
myF.WriteLine(Grades.ElementAt(i));
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
您始終可以使用字符串插值對(duì)齊來(lái)對(duì)齊文本。
為了遵循一些評(píng)論,我還敦促您建立一個(gè)持有這些價(jià)值觀的類。
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
public int Grade { get; set; }
}
這是使用字符串插值對(duì)齊的代碼
var students = new List<Student>
{
new Student {Name = "John", Age = 10, Grade = 98},
new Student {Name = "Alon", Age = 10, Grade = 100}
};
var minGrade = students.Min(s => s.Grade);
var maxGrade = students.Max(s => s.Grade);
using (var myF = new System.IO.StreamWriter(@"C:\Users\axcel\textfolder\myFile.txt", true))
{
myF.WriteLine($"{"Name",-15}{"Age",-10}{"Grade",5}");
myF.WriteLine("==============================");
foreach (var student in students)
{
myF.WriteLine($"{student.Name,-15}{student.Age,-10}{student.Grade,5}");
}
}
這將產(chǎn)生以下結(jié)果:
Name Age Grade
==============================
John 10 98
Alon 10 100
正數(shù)右對(duì)齊,負(fù)數(shù)左對(duì)齊
您可以在 Microsoft Docs的字符串插值頁(yè)面上閱讀有關(guān)它的更多信息
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
var students = new List<(string name, int age, int grade)>()
{
("John", 21, 98),
("Alon", 45, 100)
};
students.Add(("Alice", 35, 99));
using (var writer = new StreamWriter("myFile.txt"))
{
writer.WriteLine(string.Join("\t", "Name", "Age", "Grade"));
foreach(var student in students)
{
writer.WriteLine(string.Join("\t", student.name, student.age, student.grade));
}
}
正如一些評(píng)論所建議的那樣,您可以使用學(xué)生類來(lái)對(duì)姓名、年齡和年級(jí)進(jìn)行分組。在這個(gè)例子中,我使用了一個(gè)值元組。
您可以看到它如何提高代碼的可讀性,并且您可以專注于您實(shí)際嘗試解決的問(wèn)題。您可以將寫(xiě)入操作簡(jiǎn)化為簡(jiǎn)單易讀的表達(dá)式——這意味著您不太可能犯錯(cuò)誤,例如混淆 Write 和 WriteLine。
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
要解決您遇到的問(wèn)題,您可以使用: myF.WriteLine(NamesList.ElementAt(i) + " " + Grades.ElementAt(i));
但是,您提供的代碼將受益于注釋中所述的修改(創(chuàng)建一個(gè)類,使用 FileHelpers 等)
- 4 回答
- 0 關(guān)注
- 421 瀏覽
添加回答
舉報(bào)
