2016-12-18 3 views
1

내 아이가 C# (VB를 빠져 나올 수 있음)을 돕기 위해 노력하지만 임무가 어디에도 없습니다. 성이, 이름, 그는 그냥 CSV를로드하고 가장 높은 점수와 학생의 이름을 반환하는3 열에서 최상위 찾기 csv

점수 -

그는 80 기록과 CSV있다.

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

namespace exam 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Initialise variables and setting to null. 
      string FileInput = ""; 
      string[] arrayFirstName; 
      string[] arrayLastName; 
      string[] StudentDetails = new string[149]; 
      int Maximum = 0; 
      char[] split = { ',', ' ' }; 

      // Input the chosen file. 

      StreamReader reader = new StreamReader("C:\\TestData.csv"); 
      FileInput = reader.ReadToEnd(); 
      reader.Close(); 
      Console.WriteLine(FileInput); 
      Console.ReadLine(); 


     } 
    } 
} 

그는 막 시작이고, 나는 그와 함께 배우려고합니다하지만 너희들의 도움이 좋을 것 - 내가 질문을 할 수 있다면, 어떤 답변을 논리 나 이해 할 수 있도록를 포함 할 수 있습니다?

+0

'File.ReadLines ("C : \\ TestData.csv")'를 사용하고 각 행을 분할하여'foreach' 루프를 사용하여'line.Split (',');'와' 마지막 요소를 가져 와서 int 나 double로 파싱 한 다음, 'Max'와 비교할 수 있습니다. –

+1

'File.ReadAllLines()'가 도움이 될 수 있습니다. 각 요소는 파일의 한 줄입니다. 그러면 각 요소를 의미있는 것으로 구문 분석 할 수 있습니다.'string.Split()'과 같은 것을 사용하여 쉼표 문자로 분리 할 수 ​​있습니다. 거기에서 필요한 개별 데이터 요소가 있어야합니다. – David

+1

어떤 값에 쉼표 (보통 큰 따옴표'''로 구분됨)가 포함되어 있으면'String.Split'이 CSV 파일을 구문 분석하지 못합니다. – Dai

답변

0

먼저 CSV 파일에서 읽으려는 레코드를 나타내는 클래스를 만들어야합니다.

CSV를 읽을 수 있고 CSV 레코드가있는 목록을 반환 할 수있는 CSV 구문 분석기 라이브러리 (예 : 너겟의 CsvHelpers)를 사용하는 것이 좋습니다.

CsvHelpers은 좋은 문서와 좋은 라이브러리입니다 : 당신이 최고 등급을 찾기 위해 Linq를 사용할 수 있습니다 http://joshclose.github.io/CsvHelper/

.

+0

고마워요, 문제는 Plutonix가 언급 한대로 - 숙제이므로 그가 사용할 수있는 것에 제한이 있습니다. 기존 코드를 수정하여 원하는 결과를 출력 할 수 있다고 생각하십니까? – davie