【问题标题】:2d Array from text file c# [closed]来自文本文件c#的二维数组[关闭]
【发布时间】:2012-11-23 08:53:11
【问题描述】:

我有一个像这样的文本文件

1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100

在 10 x 10 网格中。 使用 c# 我需要获取文本文件并将其转换为 2d 整数数组,以便我可以在独立级别上操作整数。请帮忙解决一下,

【问题讨论】:

  • 为了获得帮助,您应该发布您尝试过的内容以及遇到的问题。本网站不欢迎不费吹灰之力向人们索取代码
  • 你需要展示你到目前为止所做的 - 如果没有,那么你打算做什么!
  • 我承认我是该网站的新手,但会记住它以供将来参考

标签: c# arrays file text 2d


【解决方案1】:
String input = File.ReadAllText( @"c:\myfile.txt" );

int i = 0, j = 0;
int[,] result = new int[10, 10];
foreach (var row in input.Split('\n'))
{
    j = 0;
    foreach (var col in row.Trim().Split(' '))
    {
        result[i, j] = int.Parse(col.Trim());
        j++;
    }
    i++;
}

索引将基于 0,因此如果您想访问 第四 行中的 第 10 列:

Console.WriteLine(result[3,9]); //40

【讨论】:

  • 看起来不错,非常感谢您对我的帮助
【解决方案2】:

锯齿状数组?

int[][] list = File.ReadAllLines("a.txt")
                   .Select(l => l.Split(' ').Select(i => int.Parse(i)).ToArray())
                   .ToArray();

编辑

您可以使用 JaggedToMultidimensional here

int[,] list2 = JaggedToMultidimensional(list);

【讨论】:

  • 感谢您的快速回复,它必须是一个二维数组,我无法理解它
  • @JoeySaxon 好的,我更新了答案。
  • 它的 using 指令是什么?>
  • 现在整理好了,谢谢大家的帮助
  • 这段代码发生了什么?
【解决方案3】:

也许:

var result = File.ReadLines(path)
    .SelectMany((l, i) => l.Split()
                           .Select(s => new int[] { i, int.Parse(s) })
                           .ToArray())
    .ToArray();

编辑:虽然这是一个锯齿状数组int[][]

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多