Другие языки программирования и технологии

C# нужна помощь, как это все объединить ?

Считать данные из текстового файла "Список".
Соревнования фигуристов. Список содержит фамилию фигуриста, страну, и оценку за обязательные выступления и за произвольную программу. Вычислить суммарную оценку. Найти победителя.

Пока это все что есть
Как это все объединить ?

Код:

static void Main(string[] args)//чтение из файла
{
StreamReader reafl; //поток для считывания данных

if (File.Exists(@"E:\Для заочников\список фигуристов. txt"))//проверка существует ли данный массив
{ readfl = new StreamReader(@"E:\Для заочников\список фигуристов. txt"); }
else
{
Console.WriteLine("файла нет");
Console.ReadKey();
return;
}
sting str;//Пока файл не закончится

Тут должен считать общую оценку и выявлять победителя
Код:

public Form1()
{
InitializeComponent();
StreamReader data = new StreamReader("abit.txt", Encoding.Default);
dataGridView1.ColumnCount = 4;
dataGridView1.RowCount = 1;
dataGridView2.ColumnCount = 2;
dataGridView2.RowCount = 1;
dataGridView1.Rows.Add("Фамилия", "Оценка 1", "Оценка 2");
dataGridView2.Rows.Add("Фамилия", "Баллы");
for (n = 0; !data.EndOfStream; n++)
{
string[] temp = data.ReadLine().Split(' ');
{
str = readfl.ReadLine();
string[] s = str.Split(';');
spisok[i].fam = s[0];
spisok[i].strana = s[0];
spisok[i].ocenka1 = Convert.ToInt32(s[2]);
spisok[i].ocenka2 = Convert.ToInt32(s[2]);

}
data.Close();

private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < n; i++)
{
spor[i].ocenka = (spisok[i].ocenka1 + spisok[i].ocenka2);
dataGridView2.Rows.Add(spisok[i].fam, spisok[i].ocenka.ToString());
}
button2.Enabled = false;
}

private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}

private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 A = new Form2();
A.Show();
this.Hide();
Андрей Попов
Андрей Попов
1 251
А зачем в базу писать эту херабору? И если писать, то тогда уже не выборкой искать победителя и другое, а через SQL запрос

Вобщем как то так

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{

var TheFiguristObject = new TheFigurist();
var FiguristList = TheFiguristObject.GetFiguristListFromTextFile();

var Winner = TheFiguristObject.GetWinnerFromList(FiguristList);
Console.WriteLine($"{Winner.Name} {Winner.Country} {Winner.Score}");

var SumScore = TheFiguristObject.GetSumScoreFromFiguristList(FiguristList);
Console.WriteLine($"{SumScore}");
}
}

class TheFigurist:IEnumerable
{
public string Name { get; set; }
public string Country { get; set; }
public int Score { get; set; }

public IEnumerator GetEnumerator()
{
throw new NotImplementedException();
}

public List GetFiguristListFromTextFile(string FilePath = @"c:\test.txt")
{
try
{
if (File.Exists(FilePath))
{
var ListFigurist = new List();
string[] lines;
var list = new List();
var fileStream = new FileStream(FilePath, FileMode.Open, FileAccess.Read);
using (var streamReader = new StreamReader(fileStream, Encoding.UTF8))
{
//Предпологается, что список во всем файле идет в каком то установленном порядке, например ИМЯ; СТРАНА; ОЦЕНКА
string line;

while ((line = streamReader.ReadLine()) != null)
{
var x = line.Split(";");

var TheFiguristObject = new TheFigurist
{
Name = x[0],
Country = x[1],
Score = Int32.Parse(x[2]),
};
ListFigurist.Add(TheFiguristObject);
}

}
return ListFigurist;
}
else
{
Console.WriteLine("файла нет");
Console.ReadKey();
return null;

}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return null;
}

}

public TheFigurist GetWinnerFromList(List ListFigurist) {
try
{
if (ListFigurist.Count > 0)
{
int MaxScore = ListFigurist.Max(f => f.Score);
var Winner = ListFigurist.Find(f => f.Score == MaxScore);
return Winner;
}
else
{
Console.WriteLine("Фигуристов не обнаружено");
return null;
}

}
catch (Exception e)
{

Console.WriteLine(e.Message);
return null;
}
}

public int GetSumScoreFromFiguristList(List ListFigurist) {
try
{
if (ListFigurist.Count>0)
{
int SumScore = ListFigurist.Sum(f => f.Score);
return SumScore;
Игорь Волков
Игорь Волков
74 418
Лучший ответ
Андрей Попов Все элементарно.. когда не понимаешь ничего, приходится делать херабору ))