Как сравнивать настоящую информацию о линии с информацией следующей линии dataTable? C#

У меня есть следующий datatable в методе моего controller, который пробегает Ваши данные, которые получены от query

DataTable dt = new DataTable();

//Obtengo query y los meto en el datatable y etc
sda.Fill(dt);

foreach (DataRow datos_tabla in dt.Rows) {
  System.Windows.Forms.MessageBox.Show(datos_tabla[0].ToString());
  System.Windows.Forms.MessageBox.Show(datos_tabla[1].ToString());
  System.Windows.Forms.MessageBox.Show(datos_tabla[2].ToString());
 }

Тема состоит в том, чтобы знать, как сравнивать, если настоящая информация, например: datos_tabla [0].ToString (); он отличный со следующим следующей линии.

Например, в datos_tabla [0].ToString (); они являются всеми я назвал их. Я хочу знать, настоящее имя, которое он появляется, пробежав datatable, - равно ли имени следующей линии. Немного, как я схватил:

  foreach (DataRow datos_tabla in dt.Rows) {

   If(datos_tabla[0].ToString())==datos_tabla[0].FilaSiguiente.ToString()){ 
     //acciones}

   }
 }

Я нуждаюсь в том, чтобы знать, информация, которая находится в линии 0, как имени, - равна ли или не в имя линии 1

1
задан 15.06.2017, 21:16
2 ответа

Ты должен меняться Foreach из-за одного for и сравнивать с Equals что является самым подходящим способом сравнивать cadenas, соглашаются на следующую линию увеличивая твою переменную iteradora следующего способа

for (int i = 0; i < dt.Rows.Count-1 ; i++)
  {
    if (dt.Rows[i][1].ToString().Equals(dt.Rows[i+1][1].ToString()))
         //aumenta el i para obtener la siguiente fila
    {
     Console.WriteLine("IGUALES");
    }

 }

Если ты не уменьшаешь-1, у тебя была бы одна exception что подробно описал ее тебе в следующем изображении

Explicación Gráfica

1
ответ дан 24.11.2019, 13:18

Вместо foreach ты можешь использовать for:

for (int i = 0; i < dt.Rows.Count - 1; i++ )
{
    if (dt.Rows[i]["nombre"].ToString() == dt.Rows[i + 1]["nombre"].ToString())
    {
        // acciones.
    }
}

Вместо "назвал" , tambiГ©n ты можешь использовать Г-ndice numГ©rico колонны или columnIndex. Например, если колонна "назвала" , у него есть Г-ndice 1, тогда:

    if (dt.Rows[i][1].ToString() == dt.Rows[i + 1][1].ToString())
1
ответ дан 24.11.2019, 13:18

Теги

Похожие вопросы