0

私はこれを使っていて、ジャグ配列を組み込む必要があるために新しい問題に遭遇したので、このコードをそのように変更してみました。

string y = "{10} red30, {20} blue12, {30} green90, {40} yellow13 : {15} axe,  
     {25} frog, {33} sandwich, {55} spinach : ...." and so on. 

int[][] Odds = y.Split(':').Select(t => Regex.Matches(t, @"(?<={)\d+(?=})"))  
    .Cast<Match>() .Select(m => int.Parse(m.Value)) .ToArray();

新しい各配列間の区切り文字として「:」を含む新しい文字列を使用します。「型'int[]'を'int[][]'に暗黙的に変換できないというエラーが表示されます。

4

1 に答える 1

2

これは、Matchesメソッドがオブジェクトを返さず、Matchオブジェクトを返すためMatchCollectionです。各コレクションからオブジェクトを取得しMatchて値を解析する必要があります。その後、それらを配列に変換できます。

int[][] Odds =
  y.Split(':')
  .Select(t => Regex.Matches(t, @"(?<={)\d+(?=})"))
  .Cast<MatchCollection>()
  .Select(
    m => m.Cast<Match>()
     .Select(n => int.Parse(n.Value))
     .ToArray()
  )
  .ToArray();
于 2013-01-13T06:06:53.253 に答える