Ver Mensaje Individual
  #1  
Antiguo 14-01-2026
alejandro.laord alejandro.laord is offline
Registrado
 
Registrado: jul 2019
Posts: 2
Reputación: 0
alejandro.laord Va por buen camino
duda basica. linq con spring4d

Alguien sabe cómo hacer select, map o equivalente en spring4d, sé que haciendo un for.. in.. lo haría.
Estoy haciendo pruebas y no consigo dar con el tema.
Adjunto ejemplo:

Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils, Spring, Spring.Collections;

type
  TProduct = class
  public
    Name: string;
    Category: string;
    Price: Double;
    InStock: Integer;
    constructor Create(const AName, ACategory: string; APrice: Double;
      AInStock: Integer);
  end;

constructor TProduct.Create(const AName, ACategory: string; APrice: Double;
  AInStock: Integer);
begin
  Name := AName;
  Category := ACategory;
  Price := APrice;
  InStock := AInStock;
end;

var
  Products: IList;
  Nombres: IEnumerable<string>;

begin
  try
    Products := TCollections.CreateObjectList(True);
    Products.AddRange([TProduct.Create('artilugio', 'cacharro', 192.43, 3),
      TProduct.Create('cacharro', 'electrónica', 13.65, 10),
      TProduct.Create('pongo', 'cacharro', 52.22, 0), TProduct.Create('cosa',
      'electrónica', 11.33, 5), TProduct.Create('trasto', 'cacharro',
      43.44, 1)]);
    Writeln('Buscando nombres de electronica...');
    // Usando Map en lugar de select
    Nombres := Products.Where(
      function(const p: TProduct): Boolean
      begin
        Result := p.Category = 'electrónica';
      end).Map<string>(
      function(const p: TProduct): string
      begin
        Result := p.Name;
      end);
    for var s in Nombres do
      Writeln('Producto: ' + s);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;

end.

Última edición por Neftali [Germán.Estévez] fecha: 15-01-2026 a las 15:05:30. Razón: Añadir TAGs al código
Responder Con Cita