Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/05/2013, 11:40
HighCore
(Desactivado)
 
Fecha de Ingreso: abril-2013
Mensajes: 70
Antigüedad: 11 años, 10 meses
Puntos: 5
Respuesta: Como convertir parametros de clase a lista?

Yo empezaría por decirte que aumentes la calidad de tu codigo.

Código:
public BankList Insert(IRfcStructure ir)
{
    return new BankList
    {
       bankCtry = ir.GetString("BANK_CTRY"),
       bankName = ir.GetString("BANK_NAME"),
       bankKey = ir.GetString("BANK_KEY"),
       city = ir.GetString("CITY")
    }
 }
Luego, estaría bueno ponerle nombres adecuados a las properties:

Código C++:
Ver original
  1. public class BankList
  2. {
  3.     public string Country { get; set; }
  4.     public string Key { get; set; }
  5.     public string Name { get; set; }
  6.     public string City { get; set; }
  7.     public string Region { get; set; }
  8.     public string BankNumber { get; set; }
  9. }

y Ademas por qué se llaman "BankList" una clase que no es un List<T>? es muy confuso esto. te sugiero que reconsideres tus naming conventions.

Luego, en vez de usar todo el tiempo el Type de las cosas para declarar las variables, te recomiendo que uses var:

Código C++:
Ver original
  1. var repo = prd.Repository; //Esta linea no tiene sentido y se puede omitir.
  2.  
  3. var companyBapi = repo.CreateFunction("BAPI_BANK_GETLIST");
  4. companyBapi.SetValue("BANK_CTRY", param);
  5. companyBapi.SetValue("MAX_ROWS", 2);
  6. companyBapi.Invoke(prd);
Luego, para convertir una List<T> en una List<T2> podes usar el metodo Select de LinQ:

Código C++:
Ver original
  1. objBank = Detail.Select(x => new MyBackendConfig()).Insert(x)).ToList();

Además de eso, la clase MyBackendConfig tiene algo? parece un diseño bastante precario tener que instanciar una clase solo para llamar a un metodo. En cualquier caso pondría el Insert ese como un método mas en la clase en donde lo estés usando. Y por qué se llama Insert si no hace nada más que convertir de una clase a otra? es muy confuso esto.

Última edición por Malenko; 06/05/2013 a las 23:10