0

我有一个保存在记事本中的 XML 文件:

<Layouts>
<BinCode>11111</BinCode>
<BinCode>11111</BinCode>
<BinCode>11112</BinCode>
<BinCode>11121</BinCode>
<BinCode>11111</BinCode>
<BinCode>11211</BinCode>
</Layouts>

我想将此 XML 文件转换为数组,然后将数组旋转到 -90 度。

4

1 回答 1

0

请注意,转换回 XML 和选择的数据类型只是说明性的。

我刚刚为您提供了一个算法指针以帮助您入门。

基本上,我们所做的是创建一个主数组,其长度是 5 位的位数,每个数组将包含一个 6 位数组。

我们将从后面填充它们,因此我们将从下向上反转字符串。

XmlDocument xml = new XmlDocument();
xml.LoadXml(@"
            <Layouts>
            <BinCode>11111</BinCode>
            <BinCode>11111</BinCode>
            <BinCode>11112</BinCode>
            <BinCode>11121</BinCode>
            <BinCode>11111</BinCode>
            <BinCode>11211</BinCode>
            </Layouts>
        ");


        var binCodes = xml.DocumentElement.ChildNodes;
        int digitsInMatrix = binCodes[0].InnerText.Length;
        int[][] ints = new int[digitsInMatrix][];

        for (int d = binCodes.Count - 1; d >= 0; d--)
        {
            for (int i = digitsInMatrix - 1; i >= 0; i--)
            {
                if (ints[i] == null)
                    ints[i] = new int[binCodes.Count];

                char item = binCodes[d].InnerText[i];
                ints[i][d] = int.Parse(item.ToString());
            }
        }

        string updatedXML = string.Format("<Layouts>{0}</Layouts>", 
            string.Join("", 
                ints.Select(x => 
                    string.Format("<BinCode>{0}</BinCode>", string.Join("", x)))));
于 2021-12-16T11:04:20.010 回答