C# 在c语言中如何将装箱的二维字符串转换为二维整数数组及反之亦然#

C# 在c语言中如何将装箱的二维字符串转换为二维整数数组及反之亦然#,c#,.net-2.0,C#,.net 2.0,我有一个字符串,它有一个二维数组,我需要将这些二维字符串转换成整数数组。 例如: String temp ="[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A]]". 我需要2D整数数组的2D字符串值,反之亦然 static void Main(string[] args) { String temp = "[[0xFF008041, 0x24008086, 0x00000

我有一个字符串,它有一个二维数组,我需要将这些二维字符串转换成整数数组。 例如:

String temp ="[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A]]".
我需要2D整数数组的2D字符串值,反之亦然

      static void Main(string[] args)
        {
            String temp = "[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A]]";
            temp = temp.Replace("[", "");
            temp = temp.Replace("]", "");
            string[] tempArray = temp.Split(new char[] {','}, StringSplitOptions.RemoveEmptyEntries);
            uint[] tempIntArray = tempArray.Select(x => FromHex(x)).ToArray();
        }
        static uint FromHex(string value)
        {
            uint results;
            uint.TryParse(value.Substring(2), NumberStyles.HexNumber, CultureInfo.CurrentCulture, out results);
            return results;
        }​

好吧,因为它是
.NET2.0
你不能使用更现代版本的优点,比如
Linq
,我建议使用
Split
进行
循环,
Trim
Convert

注意#1:我的工作假设字符串中的数字始终是十六进制数字

注意#2:我返回的是锯齿数组而不是多维数组,因为不能强制字符串中的所有内部数组具有相同数量的元素

String temp = "[[0xFF008041, 0x24008086, 0x00000000, 0x00000000,0x0008383A], [0x0008, 0x0034B]]";

int[][] ConvertStringToJaggedArray(String input)
{
    String[] Separator = { "],[", "], [", "] ,[" };
    String[] OuterArray = input.Split(Separator, StringSplitOptions.RemoveEmptyEntries);
    int[][] TargetArray = new int[OuterArray.Length][];
    string HexString;
    for (int i = 0; i < OuterArray.Length; i++)
    {
        String[] InnerArray = OuterArray[i].Split(',');
        TargetArray[i] = new int[InnerArray.Length];
        for (int j = 0; j < InnerArray.Length; j++ )
        {
            HexString = InnerArray[j].Trim(" []".ToCharArray());
            TargetArray[i][j] = Convert.ToInt32(HexString, 16);
        }
    }
    return TargetArray;
}
String temp=“[0xFF008041,0x24008086,0x00000000,0x00000000,0x0008383A],[0x0008,0x0034B]”;
int[]ConvertStringToJaggedArray(字符串输入)
{
字符串[]分隔符={“],[“,”],[“,”],[“};
String[]OuterArray=input.Split(分隔符,StringSplitOptions.removeMptyEntries);
int[][]TargetArray=新int[OuterArray.Length][];
六边形字符串;
for(int i=0;i
在这种情况下,您只有一个“内部”数组-它是否总是这样,或者有时可能是
[[1,2,3],[4,5,6]]
?听起来基本上你需要进行字符串操作。我首先将外部数组拆分为内部数组的字符串,然后分别解析其中的每一个。这是你试图解析的json吗?你尝试了什么?在我看来像json…可能使用json解析器,而不是创建2d数组-但很难看到你到底有什么问题。如何将像“[[2,3],[4,5],[3,4]]”这样的字符串转换为二维整数数组。虽然我同意这个问题可以而且应该问得更好,但我不认为它太宽泛。不能在.net 2.0中使用Linq…也阅读问题的标签。这不回答你的问题吗?