【问题标题】:strings from csv file into multidimensional array将 csv 文件中的字符串转换为多维数组
【发布时间】:2015-02-19 14:21:35
【问题描述】:

现在我尝试将数据从 csv 文件转换为多维数组。这些数据是 DOS 控制台应用程序中可播放字符的一些简单属性(主要是文本)。该文件是这样构建的

"姓名;性别;角色;hp;selectiontoken"

有 6 个不同的角色(每个角色两个)。每个字符应该是数组中的一行,每个属性应该是一列。

static void Main(string[] args)
{
    string[,] values= new string [5,6];

    var reader = new StreamReader(File.OpenRead(@"C:\path"));
    while (!reader.EndOfStream)
    {

        string line = reader.ReadLine();
        values = line.Split(';'); //Visual C# 2010 Express gives me an error at this position "an implicated conversion between string [] and string [,] is not possible"
    }

我的问题是,如何将“行”中的列拆分为“值”?

【问题讨论】:

  • String.Split 返回 string[] 而不是多维数组。
  • 这是关于如何在 C# 中解析 CSV 的一个很好的解决方案stackoverflow.com/questions/2081418/…
  • 我无法想象你为什么要将这些加载到一个二维数组中,就好像你在 40 年前编写 Fortran 一样,那时你可以轻松地创建一个具有真实属性和其他属性的类您在现代编程语言中看到的创新。

标签: c# arrays csv


【解决方案1】:

就像 Tim 向你解释的那样,String.Split 返回字符串 []。如果需要,可以将其存储在List<string[]>

static void Main(string[] args)
{
    List<string[]> values= new List<string[]>();

    var reader = new StreamReader(File.OpenRead(@"C:\path"));
    while (!reader.EndOfStream)
    {

        string line = reader.ReadLine();
        values.Add(line.Split(';'));
    }
}

【讨论】:

  • 这个问题是,我想稍后使用数组来显示字符并将选定的字符加载到变量中,而无需在多个列表中搜索正确的行。
  • 更好地了解如何将 CVS 读取到 DataTable/DataSet 之后,您可以随意使用它。下次在问题中写下你的目标。
猜你喜欢
  • 1970-01-01
  • 2019-02-13
  • 2012-11-17
相关资源
最近更新 更多