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.

Cómo separar una lista separada por comas y condición where en LINQ.

Tengo una variable giftcardamounts en una tabla de base de datos.

La columna contiene valores separados por dólares y comas.
Hay 40 filas.

Ejemplo:

fila 1: giftcardamounts : ($10,$20,$30,$40,$50)
fila 2: giftcardamounts : ($100,$200,$30,$40,$50)
fila 3: giftcardamounts : ($10,$20,$300,$400,$500)
...etc

Desde el frontend, se recibe una entrada llamada giftcardselectedamount

Ejemplo: giftcardselectedamount=500

En función de este valor de entrada, necesito escribir una consulta LINQ en la lista de valores separados por dólares y comas.

Por favor, ayúdeme a escribir esto.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, primero necesitamos convertir la lista separada por comas en una lista de valores individuales. Podemos hacer esto utilizando el método string.Split() y eliminando el signo de dólar de cada valor. Luego podemos usar LINQ para filtrar la lista en base a la cantidad de entrada.

    Aquí hay un ejemplo de consulta LINQ en C#:

    int inputAmount = 500;
    
    var result = dbContext.GiftCards
                    .Select(g => new {
                        CardId = g.Id,
                        Amounts = g.giftcardamounts.Split(',').Select(a => int.Parse(a.Replace("$", "")))
                    })
                    .Where(g => g.Amounts.Contains(inputAmount))
                    .ToList();
    

    Esta consulta selecciona las columnas necesarias de la tabla GiftCards y convierte la columna giftcardamounts en una lista de enteros. Luego filtra los resultados en función de si la cantidad de entrada existe en la lista de cantidades.

    El resultado será una lista de objetos anónimos que contienen el Id de la Tarjeta de Regalo y la lista de cantidades coincidentes.

Comments are closed.