2017-01-09 5 views
0

Я пытаюсь вставить 4 значения, исходящих из метода match(), в 4 разных текстовых поля, один за другим, но не смог выйти из цикла после первое значение, помещенное в первое текстовое поле, приводит к тому, что 4 значения будут отображаться в первом текстовом поле один за другим, а затем перейти к следующему текстовому полю, чтобы сделать то же самое. Вот мой код:Как получить каждое значение из совпадения с циклом foreach или без него

 for (int g = 0; g <5; g++) //tried this inside foreach() ; no result 
         { 
           foreach (Match m in mc) 
           { 
            /////each foreach returns 4 value, which then should be feed to textbox13 to 16, one by one. 
            if (g == 1) { textBox13.Text = m.Groups[0].Value; MessageBox.Show(m.Groups[0].Value); continue; } 
            //but continue;'s are not breaking the loop 
             if (g == 2) { textBox14.Text = m.Groups[0].Value; MessageBox.Show(m.Groups[0].Value); continue; } 
             //all four value appears in the first textbox(textBox13), one by one, then jumps to 2nd textbox(textBox14) and does the same w/ the same values 
            ////until the 4th textbox (textbox16)... 

              if (g == 3) { textBox15.Text = m.Groups[0].Value; MessageBox.Show(m.Groups[0].Value); continue; } 

               if (g == 4) 
               { 
                textBox16.Text = m.Groups[0].Value; MessageBox.Show(m.Groups[0].Value); 
                sendrow(); 
                textBox13.Text = ""; 
                textBox14.Text = ""; 
                textBox15.Text = ""; 
                textBox16.Text = ""; 
                g = 0;   // then all textboxes emptied for the next group of 4 values... 
                continue;  //coming from a higher-loop, before the 1st for(), which is NOT shown here. 
            } 
         } 
        } 

Где я делаю ошибку с Еогеасп() петли Есть особенность этого матча, что мы можем выбрать любое из значений их индекса, так же, как мы делаем это с его. Группы [index] .Value?

спасибо.

ответ

0

Это сделало эту работу. Извините, что беспокоиться. (Исключить, если это не относится к другим лицам)

     ICollection<string> mc = Regex.Matches(ztring, @"\d+(\.\d{1,4})?").Cast<Match>() 
        .Select(x => x.Groups[0].Value) 
        .ToList(); 

        foreach (string m in mc) 
        { MessageBox.Show(m); 
         textBox13.Text += Environment.NewLine + m; } 

           for (int f = 0; f < textBox13.Lines.Length+1; f++) 
           { 
            string opn_val= textBox10.Lines[0]; 
            string high_val = textBox10.Lines[1]; 
            string low_val = textBox10.Lines[2]; 
            string close_val = textBox10.Lines[3]; 

            if (f == 1) { MessageBox.Show(textBox10.Lines[0]); } 
            if (f == 2) { MessageBox.Show(textBox10.Lines[1]); } 
            if (f == 3) { MessageBox.Show(textBox10.Lines[2]); } 
            if (f == 4) { MessageBox.Show(textBox10.Lines[3]); } 
           } 
        } 

 Смежные вопросы

  • Нет связанных вопросов^_^