zoukankan      html  css  js  c++  java
  • 读取csv 文件

    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
  • 相关阅读:
    POJ2823 Sliding Window【双端队列】
    初识Identity
    dSploitzANTI渗透教程之启动zANTI工具
    dSploitzANTI渗透教程之安装zANTI工具
    iOS Sprite Kit教程之滚动场景
    iOS Sprite Kit教程之场景的切换
    iOS Sprite Kit教程之场景的设置
    iOS Sprite Kit教程之真机测试以及场景的添加与展示
    iOS Sprite Kit教程之申请和下载证书
    iOS Sprite Kit教程之使用帮助文档以及调试程序
  • 原文地址:https://www.cnblogs.com/skywss27/p/9949709.html
Copyright © 2011-2022 走看看