【问题标题】:Read/Write from text file to multi-dimensional array从文本文件读/写到多维数组
【发布时间】:2014-04-29 09:28:47
【问题描述】:

我有一个文本文件,其中包含名为“ConversionsDefault.txt”的转换,例如英尺到米、英里到公里等,格式如下:

英里|公里|1.6093

英尺|米|0.3048

我想将此文本文件读入一个矩形数组,其中包含第一个长度选项、第二个长度选项以及将第一个选项转换为第二个选项的乘数。

我还有一个添加按钮,用于添加新的转换类型,例如 A|B|50.00;它可以是任何乘数。此添加按钮应将新转换类型与默认转换类型一起添加到名为“Conversions.txt”的文本文件中。

任何帮助将不胜感激。

【问题讨论】:

  • 这对我来说看起来很简单。你在哪里卡住了?

标签: c# text multidimensional-array


【解决方案1】:

你可以使用File.ReadAllLines和一些Linq:

var rows = File.ReadAllLines("ConversionsDefault.txt").Select(l => l.Split('|')).ToArray();

然后:

Console.WriteLine(rows[0][0]); // Will output Miles
Console.WriteLine(rows[0][1]); // Will output Kilometers
Console.WriteLine(rows[0][2]); // Will output 1.6093
Console.WriteLine(rows[1][0]); // Will output Feet
Console.WriteLine(rows[1][1]); // Will output Meters
Console.WriteLine(rows[1][2]); // Will output 0.3048

或者您可以将数据保存到结构中:

public struct ConversionDetails
{
    public readonly string Unit1;
    public readonly string Unit2;
    public readonly Decimal Ratio;

    public ConversionDetails(string[] line)
    {
        Unit1 = line[0];
        Unit2 = line[1];
        Ratio = Decimal.Parse(line[2]);
    }
}

var rows = File.ReadAllLines("ConversionsDefault.txt").Select(l => new ConversionDetails(l.Split('|'))).ToArray();

【讨论】:

  • l.Split('|') 返回一个数组,所以你不需要调用ToArray()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-22
相关资源
最近更新 更多