2016-12-18 8 views
1

私の子供をC#で助けようとしていますが(私はVBでうんざりすることがありますが)、どこにでも行くことはできません。姓は、FIRSTNAME、彼はちょうど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 ")'を使って試してみて、 'line.Split( '、');'と '最後の要素をとり、あなたの必要に応じてそれをintまたはdoubleに解析して、それを 'Max'と比較することができます。 –

+1

' File.ReadAllLines() 'は役に立ちます。 'string.Split()'のようなものをコンマ文字で区切って意味のあるものにパースすることができます。そこから、必要な個々のデータ要素を持つ必要があります。 – David

+1

値がカンマ(通常は二重引用符 '' ')で区切られている場合、' String.Split'はCSVファイルを解析できません。 – Dai

答えて

0

まず、CSVファイルから読み取ろうとしているレコードを表すクラスを作成する必要があります。

CSVを読んでCSVレコードでリストを返すことができるCSVパーサライブラリ(NugetのCsvHelpersなど)を使用することをお勧めします。

CsvHelpersいくつかの良いドキュメントとの良好なライブラリです:あなたは最高グレードを見つけるためにLINQを使用することができますhttp://joshclose.github.io/CsvHelper/

+0

おかげで、問題は、Plutonixが言及しているように、問題は彼の宿題なので、彼は彼が使うことができるものに制限されています。既存のコードを調整して、望ましい結果を出力できると思いますか? – davie

関連する問題