DEV Community

Cover image for How to parse a CSV file from Linq (C#)
Hemant Govekar
Hemant Govekar

Posted on

5 2

How to parse a CSV file from Linq (C#)

The entire video is available on my youtube channel :
linq csv

My Youtube Channel (click below image to subscribe)
linq csv

Part of CSV File below.

(Entire file can be downloaded from my github location :

https://github.com/hemantgovekar/ParseCSVWithLinq/blob/master/ParseCSV/Player.csv)

Player_Id,Player_Name,DOB,BattingHand,BowlingSkill,Country,Is_Umpire,
1,SC Ganguly,08-Jul-72,Left_Hand,Right-arm medium,India,0,
2,BB McCullum,27-Sep-81,Right_Hand,Right-arm medium,New Zealand,0,
3,RT Ponting,19-Dec-74,Right_Hand,Right-arm medium,Australia,0,
4,DJ Hussey,15-Jul-77,Right_Hand,Right-arm offbreak,Australia,0,
5,Mohammad Hafeez,17-Oct-80,Right_Hand,Right-arm offbreak,Pakistan,0,
6,R Dravid,11-Jan-73,Right_Hand,Right-arm offbreak,India,0,
7,W Jaffer,16-Feb-78,Right_Hand,Right-arm offbreak,India,0,
8,V Kohli,05-Nov-88,Right_Hand,Right-arm medium,India,0,
9,JH Kallis,16-Oct-75,Right_Hand,Right-arm fast-medium,South Africa,0,
10,CL White,18-Aug-83,Right_Hand,Legbreak googly,Australia,0,
11,MV Boucher,03-Dec-76,Right_Hand,Right-arm medium,South Africa,0,
12,B Akhil,07-Oct-77,Right_Hand,Right-arm medium-fast,India,0,
13,AA Noffke,30-Apr-77,Right_Hand,Right-arm fast-medium,Australia,0,
14,P Kumar,02-Oct-86,Right_Hand,Right-arm medium,India,0,
15,Z Khan,07-Oct-78,Right_Hand,Left-arm fast-medium,India,0,
.......
.......
.......
.......

Code base

/* C# File to access csv /
/
using statements */



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

namespace ParseCSV
{
    class Program
    {
        static void Main(string[] args)
        {
            var players = ProcessCSV("Player.csv");

            foreach (var player in players)
            {
                Console.WriteLine(player.PlayerName + ' ' + player.Country);
            }

            Console.ReadLine();
        }

        private static List<Player> ProcessCSV(string path)
        {
            return File.ReadAllLines(path)
                .Skip(1)
                .Where(row => row.Length > 0)
                .Select(Player.ParseRow).ToList();
        }
    }

    public class Player
    {
        public int Id { get; set; }
        public string PlayerName { get; set; }
        public string PayerDOB { get; set; }
        public string BattingHand { get; set; }
        public string BowlingSkills { get; set; }
        public string Country { get; set; }
        public string IsUmpire { get; set; }

        internal static Player ParseRow(string row)
        {
            var columns = row.Split(',');
            return new Player()
            {
                Id = int.Parse(columns[0]),
                PlayerName = columns[1],
                PayerDOB = columns[2],
                BattingHand = columns[3],
                BowlingSkills = columns[4],
                Country = columns[5],
                IsUmpire = columns[6]
            };
        }
    }
}


Enter fullscreen mode Exit fullscreen mode

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (4)

Collapse
 
jeikabu profile image
jeikabu

Just FYI, you can add syntax highlighting: github.com/adam-p/markdown-here/wi...

Collapse
 
hemantgovekar profile image
Hemant Govekar • Edited

din't knew dev.to has syntal highligting. Thanks for asking for it :-).
Added code highligting

Collapse
 
kaylumah profile image
Max Hamulyák

Nice and simple, I like it :-)

Collapse
 
hemantgovekar profile image
Hemant Govekar

Thanks Max :-)
More such videos on my youtube channel , subscribe if you like : youtube.com/channel/UCajNSAb41SHFY...

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay