[英]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.