簡體   English   中英

有沒有辦法從字符串和 map 獲取數據到 C# 中的 3D 數組?

[英]Is there a way to get data from a string and map it to a 3D array in C#?

我正在嘗試編寫一個腳本來讀取一個 input.txt 文件,該文件在每行上存儲一個 3D(?) 矩陣(每行是一個不同的矩陣),我已經設法將文件的行切割成單獨的字符串,現在我必須讀取其中一個字符串(第一行的),它只是一長串方括號、逗號和數字。

//example
[[[[1, []], [6, [1, 2, 11]], [0, [11]]], [[0, [2]], [0, [2]], [0, [11]]], [[0, [1]], [6, []], [0, [11]]]], [[[0, []], [0, []], [0, [11]]], [[0, []], [0, []], [0, [11]]], [[0, [2]], [0, [1,2]], [0, [11]]]], [[[0, [2]], [6, [11]], [0, [11]]], [[0, [6, 4]], [0, []], [0, [11]]], [[0, [1, 2]], [6, []], [0, [2, 11]]]]]

3 列 3 行 3 個“層”(總是有 3 層,但每個文件的第一行矩陣的列數和行數會有所不同)

矩陣從左上角 (1x, 1y, 1z) 開始並向后穿過每個“維度”(例如 x1 y1 z1 -> x1 y1 z2 -> x1 y1 z3 -> x1 y2 z1 -> x1 y2 z2 等) ,

矩陣的每個單元格看起來像 [int, [<逗號分隔的整數列表,如果沒有整數則什么都沒有>]]

與其他一些文件的第一行矩陣相比,上面的示例相對較小(矩陣的平均大小為 72 x 43 x 3)。

而且因為矩陣的大小因文件而異,所以我不能強行使用它。

我可以手動讀取矩陣,但我不知道如何告訴 C# 如何讀取矩陣。 我對 C#(或一般編碼)不是很熟練,所以我不知道從哪里開始。

您可以簡單地獲取矩陣的 txt 字符串,然后反序列化此測試以獲取您的 3d 矩陣。 樣本:

var txtString = "[[[[1, []], [6, [1, 2, 11]], [0, [11]]], [[0, [2]], [0, [2]], [0, [11]]], [[0, [1]], [6, []], [0, [11]]]], [[[0, []], [0, []], [0, [11]]], [[0, []], [0, []], [0, [11]]], [[0, [2]], [0, [1,2]], [0, [11]]]], [[[0, [2]], [6, [11]], [0, [11]]], [[0, [6, 4]], [0, []], [0, [11]]], [[0, [1, 2]], [6, []], [0, [2, 11]]]]]";
var matrix = JsonConvert.DeserializeObject(txtString);

我搞砸了一個叫做 Regex 的東西,並且能夠得到(至少以 substring 形式)我想要的所有部分:

/\[[0-9]+,\s\[([0-9]*,?\s*[0-9]*)*\]{1,2}/gi

我可能已經使用了某種 JSON 數組 thingamajig,但這對我來說花費的時間太長了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM