Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

LINQ: Il metodo extension Last (ma non per LINQ-to-SQL)

Le operazioni di interrogazione dei dati utilizzando la sintassi di LINQ permettono di sfruttare un metodo extension chiamato Last, che restituisce l'ultimo elemento di una sequenza. Ad esempio, il seguente frammento di codice:

        Dim elencoProcessi = From processo In Process.GetProcesses _

                            Select processo

 

        Console.WriteLine(elencoProcessi.Last.ProcessName)

        Console.ReadLine()

restituisce l'ultimo elemento della collection di processi.

Purtroppo, come è stato sollevato in un Newsgroup di Microsoft, questo metodo non è supportato in LINQ-to-SQL, nonostante l'Intellisense lo mostri come disponibile. Il seguente codice, infatti, solleva un'eccezione di tipo NonSupportedException (ipotizzando il binding al database Northwind):

        Dim dc As New NorthwindDataContext

 

        Dim customers = From customer In dc.Customers _

                         Select customer

 

        'Solleva NonSupportedException :-(

        Dim lastCustomer = customers.Last

        Console.WriteLine(lastCustomer.ContactName)

        Console.ReadLine()

Il metodo funziona regolarmente, invece, in ambito LINQ-to-XML. Analogo discorso vale per il metodo LastOrDefault, che restituisce l'ultimo elemento della sequenza o un elemento di default specificato. La cosa è stata comunque segnalata dall'utente che se ne è accorto, sfruttando gli Wiki della libreria MSDN.

Alessandro

Print | posted on lunedì 21 aprile 2008 22:51 | Filed Under [ Visual Basic LINQ ]

Powered by:
Powered By Subtext Powered By ASP.NET