• 读取csv 文件 c#


    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ReadCSV
    {
        class Program
        {
            public static void Main(string[] args)
            {
                List<Contract> list = ReadCSV(@"‪C:UsersAdministratorSourceReposReadCSVReadCSVinDebugEE4.csv");
    
            }
            public static List<Contract> ReadCSV( string path)
            {
                
                List<Contract> list = new List<Contract>();
                StreamReader sr = new StreamReader("EE6.csv", Encoding.UTF8);
                String line;
                while ((line = sr.ReadLine()) != null)
                {
                    if (line.Contains("DisplayName"))
                        continue;
                    list.Add(readlineToContract(line, 15));
                }
                return list;
            }
    
            public static Contract readlineToContract(string line, int count)
            {
                Contract contract = new Contract();
                string[] strArray = line.Split(',');
                if (count == strArray.Count())
                {
                    contract.Name = strArray[4];
                    contract.DisplayName = strArray[5];
                    contract.Type = strArray[8];
                    contract.Category = strArray[9];
                    contract.State = strArray[10];
                    contract.Stage = strArray[11];
                }
                else
                {
                    //deal with doublue " contains ,
                    List<string> temp = new List<string>();
                    for (int i = 0; i < line.ToArray().Length; i++)
                    {
                        if (line[i] != '"')
                        {
                            int index = line.IndexOf(",", i);
                            if (index == -1)
                                temp.Add(line.Substring(i));
                            else
                            {
                                temp.Add(line.Substring(i, index - i));
                                i = index;
                            }
                        }
                        else if (line[i] == ',')
                        {
                            temp.Add(string.Empty);
                        }
                        else if (line[i] == '"')
                        {
                            int index = line.IndexOf(""", i+1);
                            temp.Add(line.Substring(i+1, index - i-1));
                            i = index;
                        }
    
                    }
                    if (line.EndsWith(",")) temp.Add(string.Empty);
    
                    contract.Name = temp[4];
                    contract.DisplayName = temp[5];
                    contract.Type = temp[8];
                    contract.Category = temp[9];
                    contract.State = temp[10];
                    contract.Stage = temp[11];
                }
                return contract;
            }
        }
    
        class Contract
        {
            public string Name { set; get; }
            public string DisplayName { set; get; }
            public string Type { set; get; }
            public string Category { set; get; }
            public string State { set; get; }
            public string Stage { set; get; }
    
    
        }
    }
    I'm fine, it's ok
  • 相关阅读:
    hdu多校4
    hdu多校第三场
    牛客多校4
    bzoj 1477 扩展欧几里德
    bzoj 1485 卡特兰数 + 分解因子
    hdu多校 2
    牛客网暑期多校2
    bzoj 1040 基向内环树dp
    hdu 多校第一场
    SPOJ
  • 原文地址:https://www.cnblogs.com/skywss27/p/9949722.html
Copyright © 2020-2023  润新知