从文本文件读取/写入多维数组

时间:2014-04-29 09:28:48

标签: c# text multidimensional-array

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

数|公里| 1.6093

脚|仪表| 0.3048

我想把这个文本文件读成一个矩形数组,该数组由第一个长度选项,第二个长度选项和将第一个长度选项转换为第二个长度选项的乘数组成。

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用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();