Pregunta

He escrito algo de código para la igualdad de prueba entre los valores de las columnas de tablas de datos cuando el tipo de columna no se conoce.

Pruebas directamente como esto:

row["Foo"] == row["Bar"]

siempre resulta en falso, presumiblemente debido a la implementación del objeto de iguales usos ReferenceEquals.

Así que he recurrido a:

row["Foo"].ToString() == row["Bar"].ToString()

Estos trabajos (al menos para los casos que he encontrado hasta ahora), pero parece un poco, bueno, manky.

Puede alguien pensar en una razón por la que no debería hacerlo de esta manera, o sugerir una mejor manera? Recuerda que no conozco los tipos de columna en tiempo de diseño, por lo que la fundición no es una opción.

Gracias

David

¿Fue útil?

Solución

row["Foo"].Equals(row["bar"]) intento.

Cuando se comparan los objetos usando == y no hay ninguna está predefinido o == operador definida por el usuario, C # las comparará el uso de la igualdad de referencia. Si desea llamar al método Equals, es necesario escribirlo como una llamada al método.

Otros consejos

row["Foo"].Equals(row["Bar"])?

Por qué no usar es igual si son de cadena.

row["foo"].ToString().Equals(row["Bar"].ToString());
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top