es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Método de extensión en C# para convertir en formato separado por comas.

Tengo algunos datos como nombre,primer_nombre,apellido,estándar,Número_de_Rol.

Usando C#, quiero convertir esto en

('nombre', 'apellido', 'estándar', 'Número_de_Rol') 

para poder utilizar estos datos para consultar en la base de datos SQL/MySQL como –

SELECT *
FROM Tabla1 
WHERE UserCommunicationId IN ('nombre', 'apellido', 'estándar', 'Número_de_Rol');

En lugar de

SELECT *
FROM Tabla1 
WHERE UserCommunicationId IN ('nombre,apellido,estándar,Número_de_Rol');
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puedes usar el método String.Join junto con el método Select de LINQ para convertir la cadena de entrada en una lista separada por comas de valores encerrados en comillas simples.

    Aquí tienes un ejemplo de código:

    string input = "nombre,primerNombre,apellido,estandar,númeroMatrícula";
    
    // Dividir la cadena de entrada en un array de cadenas
    string[] campos = input.Split(',');
    
    // Usar el método Select de LINQ para convertir cada campo en una cadena entre comillas
    string[] camposConComillas = campos.Select(f => $"'{f}'").ToArray();
    
    // Unir los campos con comas y envolverlos entre paréntesis
    string resultado = $"({String.Join(',', camposConComillas)})";
    
    // Usar el resultado en la consulta SQL
    string consulta = $"SELECT * FROM Tabla1 WHERE IdComunicaciónUsuario IN {resultado}";
    

    La variable resultado contendrá ("'nombre','primerNombre','apellido','estandar','númeroMatrícula'"), que es lo que necesitas pasar al operador IN en tu consulta SQL.

    Ten en cuenta que este código asume que los campos de entrada no contienen comillas simples, de lo contrario tendrías que escaparlas correctamente.

Comments are closed.