Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C#] Linq, Min e Where in Group

    Buongiorno a tutti,
    ho una lista di oggetti, tramite Linq vorrei raggrupparli per una proprietà.
    Tra le varie proprietà, di una in particolare dovrei tirare fuori per ogni gruppo il valore Min, escludendo i valori <= 0.

    Inizialmente ho provato così:
    codice:
    List<OggettoInput> lstObjI= ...
    List<OggettoOutput> lstObjO =
    	(from objI in lstObjI
    	group objI by new { objI.campoKey } into g
    	select new OggettoOutput
    	{
    		campo1 = gruppo.First(g => g.campoBool),
    		campoN = ...,
    		campoCheNonRiescoAValorizzare = 
    			gruppo.Where(g => g.campoInt > 0).Min().campoInt
    	}).ToList();
    Non mi da errore di sintassi, ma non può funzionare in quanto...
    codice:
    gruppo.Where(g => g.campoInt > 0)
    restituisce una lista di OggettoInput, quindi...
    codice:
    gruppo.Where(g => g.campoInt > 0).Min()
    non cerca il valore minimo di OggettoInput.campoInt, ma il Min di OggettoInput (e quando ci prova va in eccezione).

    Qual'è la sintassi corretta?
    Ho fatto diverse ricerche, ma non ho trovato la risposta.

    Grazie
    Luciano

  2. #2
    Risolto:

    codice:
    List<OggettoInput> lstObjI= ...
    List<OggettoOutput> lstObjO =
    	(from objI in lstObjI
    	group objI by new { objI.campoKey } into g
    	select new OggettoOutput
    	{
    		campo1 = gruppo.First(g => g.campoBool),
    		campoN = ...,
    		campoCheFinalmenteRiescoAValorizzare = 
    			(from objI2 in g
    			where objI2.campoInt > 0
    			select objI2.campoInt).Min()
    	}).ToList();

    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.