2016-05-10 61 views
-1

我将字符串转换为锯齿状参数的数组有问题。我尝试使用LINQ但不能得到它的工作。任何建议我怎么能做到这一点?C#将字符串转换为参数的锯齿状数组

String Numbers = "[1, 2, 3, 4] [5, 6, 7, 8]"; 
     String [][] myStrings = output.Text.Split(']').Select(t => t.Split(',')).ToArray(); 
     int[][] ints = Array.ConvertAll(myStrings, t => int.Parse(t)); 
+0

可能是因为您的分割输出不是由那个都可以转换为int的元素。放置一个断点并检查'myStrings'。 – Lunyx

回答

1

我认为你正在寻找这样的事情:

var re= Numbers.Split(new[] { "] " },StringSplitOptions.RemoveEmptyEntries) 
       .Select(s => s.Replace("[", "").Replace("]", "").Split(',').Select(st=>int.Parse(st)).ToArray()) 
       .ToArray(); 

首先拆分字符串数组表示,然后取出支架和分裂“”,终于铸就string集合中的每个元素到int,并调用ToArray扩展方法。

1

似乎解析不会因为][符号

String Numbers = "[1, 2, 3, 4] [5, 6, 7, 8]"; 

int [][] ints = 
    Numbers.Trim(']','[').Split(new [] {"] ["}, StringSplitOptions.RemoveEmptyEntries) 
      .Select(t => t.Split(',').Select(s=>int.Parse(s)).ToArray()) 
      .ToArray(); 

工作试试这个样品与Fiddle

相关问题