Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [vb.net] estrarre un campo da un DataTable usando gli extension method

    debbo costruirmi una funzione che faccia questo:

    Ho un DataTable con 0 o n record.
    Filtro il datatable secondo un campo
    Se non trovo nessun record, restituisco 0
    Se trovo il record restituisco il valore di un certo campo.

    Volevo fare il tutto usando le extension method

    quello che ho fatto finora è:
    codice:
    Protected Function valore(dt As DataTable, campo As String) As Integer
    	Dim result As Integer
    
    	Dim dr = dt.AsEnumerable().Where(Function(s) s("campo").ToString = campo).FirstOrDefault()
    
    	If dr IsNot Nothing Then
    		result = CInt(NullToZero(dr("valore")))
    	Else
    		result = 0
    	End If
    	Return result
    End Function
    volevo sapere se si possa risolvere il tutto senza usare l'if, ossia, tutto dentro la riga

    Dim dr = dt.AsEnumerable().Where(Function(s) s("campo").ToString = campo).FirstOrDefault()

    ciao
    Pietro

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Ciao Pietro,
    non so se ti convenga farlo, comunque prova così :
    codice:
    Protected Function valore(dt As DataTable, campo As String) As Integer
    	Return If(dt.AsEnumerable().Any(Function(s) s("campo").ToString = campo), dt.AsEnumerable().Where(Function(s) s("campo").ToString = campo).FirstOrDefault(), 0)
    End Function
    forse è meglio comunque mettere qualche variabile in più...

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio. Ciao
    Pietro

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Originariamente inviato da pietro09
    Ti ringrazio. Ciao
    Figurati

    ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.