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 poblar un List a partir de un List que contiene una variable int en su getter.

Necesito obtener todas las variables de ‘id’ de ‘dataList’ en ‘idList’.
Algo así:

public List<data> dataList;
public List<int> idList
{
  get 
  {
    for (int i = 0; i < dataList.Count; i++)
    {
      idList.Add(dataList[i].id);
    }
    return idList;
  }
};

Pero ¿cómo se puede optimizar esto de una mejor manera?

He intentado crear una lista local, poblarla con los Ids y luego asignarla a ‘idList’. Pero creo que este método no está optimizado.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una optimización potencial para este código podría ser utilizar la biblioteca LINQ en C#. En lugar de iterar manualmente a través de dataList y agregar cada ID a idList, puedes utilizar el método Select de LINQ para proyectar el ID de cada objeto Data en dataList en una nueva lista de enteros. Aquí tienes un ejemplo de cómo hacerlo:

    using System.Linq; // Asegúrate de incluir este namespace
    
    public List<data> dataList;
    public List<int> idList => dataList.Select(data => data.id).ToList();
    

    Este código utiliza una expresión lambda con el método Select para proyectar cada objeto Data en su propiedad id, y luego llama a ToList() para crear una nueva lista de enteros. Esto debería ser más eficiente que iterar manualmente a través de dataList porque aprovecha la implementación optimizada de LINQ. Además, este código utiliza una propiedad de solo lectura (getter-only) para idList, lo que significa que la lista se creará de forma perezosa cuando se acceda por primera vez y no se volverá a crear cada vez que se llame a la propiedad.

Comments are closed.