Read each string from a string array

Polachan Paily 91 Reputation points


I am trying to store each string into a variable from a string array. I have a string like

 string[]  fileContent = ftp.ReadFiles(cellValue); fileContent   array holding the values as given below

    foreach (string s in fileContent)
              string vehicleType = "Truck",
              string regno = ""FN60HZU"

How can I store each string into a variable ?

An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
10,618 questions
{count} votes

4 answers

Sort by: Most helpful
  1. Karen Payne MVP 35,386 Reputation points

    Consider using CsvHelper, in short you create a class/model to represent your data than read it. and if you do not want quotes use csv.Configuration.IgnoreQuotes = true;

    void Main()
        using (var reader = new StreamReader("path\\to\\file.csv"))
        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
            var records = csv.GetRecords<Foo>();
    public class Foo
        public int Id { get; set; }
        public string Name { get; set; }
    0 comments No comments

  2. Polachan Paily 91 Reputation points

    Hi karenpayneoregon

    I am trying to parse the data without using csv helper. I want to get each string into a a variable from an array string

    0 comments No comments

  3. Karen Payne MVP 35,386 Reputation points

    You can get all items as shown below, here I get one part of a line into an anonymous type VehicleType is a string.

    var results = (from line in fileContent where line.Length > 0
        let Items = line.Split(',') select new { VehicleType = Items[0] }).ToList();
    foreach (var item in results)

    As you can guess we need to do conversions if a property is not a string e.g.

    var results = (from line in fileContent where line.Length > 0
        let Items = line.Split(',') select new { VehicleType = Items[0], SomeOtherProperty = Convert.ToDateTime(Items[1]) }).ToList();

  4. Jack J Jun 24,491 Reputation points Microsoft Vendor

    @Polachan Paily , Welcome to Microsoft Q&A, we could create a class for the csv file.

    Then, we need to remove " " for every variable.

    Here is a code example you could refer to.

     static void Main(string[] args)  
                string[] fileContent = File.ReadAllLines(@"C:\Users\username\Desktop\t.csv").Select(i=>i.Replace("\"", "")).ToArray();  
                var result=(from line in fileContent  
                           let Items = line.Split(',')  
                           select new CsvContent   
                               Col1 =Convert.ToInt32(Items[0]),  
                               Col2 = Items[1],  
                               Col3 = Items[2],  
                               Col4 = Items[3],  
                               Col5 = Items[4],  
                               Col6 = DateTime.ParseExact(Items[5], "dd/MM/yyyy", CultureInfo.InvariantCulture),  
                               Col7 = Items[6],  
                               Col8 = Items[7],  
                               Col9 =Convert.ToInt32( Items[8]),  
                               Col10 = Convert.ToInt32(Items[9]),  
                               Col11 = Items[10],  
                               Col12= Items[11],  
                               Col13= Convert.ToInt32(Items[12]),  
                               Col14 = Convert.ToInt32(Items[13]),  
                               Col15 = Convert.ToInt32(Items[14]),  
                               Col16 = Items[15],  
                               Col17= Convert.ToInt32(Items[16]),  
                               Col18 = Items[17],  
                               Col19= DateTime.ParseExact(Items[18], "HH:mm:ss", CultureInfo.InvariantCulture),  
                               Col20 = DateTime.ParseExact(Items[19], "HH:mm:ss", CultureInfo.InvariantCulture),  
                               Col21 = Items[20]  
            public class CsvContent  
                public int Col1 { get; set; }   
                public string Col2 { get; set; }  
                public string Col3 { get; set; }  
                public string Col4 { get; set; }  
                public string Col5 { get; set; }  
                public DateTime Col6 { get; set; }  
                public string Col7 { get; set; }  
                public string Col8 { get; set; }  
                public int Col9 { get; set; }  
                public int Col10 { get; set; }  
                public string Col11 { get; set; }  
                public string Col12 { get; set; }  
                public int Col13 { get; set; }  
                public int Col14 { get; set; }  
                public int Col15 { get; set; }  
                public string Col16 { get; set; }  
                public int Col17 { get; set; }  
                public string Col18 { get; set; }  
                public DateTime Col19 { get; set; }  
                public DateTime Col20 { get; set; }  
                public string Col21 { get; set; }  

    Tested result:


    Best Regards,

    0 comments No comments