Распечатать данные о студентах из файла - C#
Формулировка задачи:
помогите написать программу заранее спасибо..
9. Дан файл, содержащий информацию о студентах: фамилия, имя, отчество, номер группы, оценки по трем предметам текущей сессии. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все данные о студентах, успешно сдавших сессию, потом данные об остальных студентах, сохраняя исходный порядок в каждой группе сотрудников.
Решение задачи: «Распечатать данные о студентах из файла»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List<Student> data = new List<Student>();
System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\file.txt");
string line = null;
while((line = sr.ReadLine()) != null)
{
string[] splitLines = line.Split(' ');
data.Add(new Student()
{
LastName = splitLines[0],
Name = splitLines[1],
MiddleName = splitLines[2],
GroupNumber = Int32.Parse(splitLines[3]),
Marks = new List<int>(){ Int32.Parse(splitLines[4]), Int32.Parse(splitLines[5]), Int32.Parse(splitLines[6]) }
});
}
var query = from d in data
let x = d.Marks.Sum()
orderby x descending
select d;
foreach(var student in query)
{
Console.WriteLine("{0} {1} {2} {3} {4}", student.LastName, student.Name, student.MiddleName, student.GroupNumber, student.Marks.ToStringExt());
}
Console.ReadLine();
}
}
class Student
{
//фамилия, имя, отчество, номер группы, оценки по трем предметам текущей сессии
public string LastName { get; set; }
public string Name { get; set; }
public string MiddleName { get; set; }
public int GroupNumber { get; set; }
public List<int> Marks { get; set; }
}
static class Extensions
{
public static string ToStringExt(this List<int> m)
{
string str = null;
foreach(var s in m)
{
str += s + " ";
}
return str;
}
}
}