stsadm.net

Archives

juin 2009 (1)
avril 2009 (2)
mars 2009 (1)
février 2009 (1)
janvier 2009 (1)
novembre 2008 (3)
octobre 2008 (1)

Tag cloud

.NET, Azure, Dynamics CRM 4, Evenements, Imagine Cup, Mesh, Office, PowerShell, SharePoint, Silverlight

Documents

Liens

 Tekigo
Epsi
Microsoft Student Partner
del.icio.us
Viadeo
Facebook
Syndication


  Locations of visitors to this page

Microsoft chage the world or go home

List.Exists(Predicate<T>) en Silverlight 2   

Tags: .NET, Dynamics CRM 4, Silverlight
Technorati Tags: , ,

Lors de la préparation de la conférence NAV201 : Découvrez comment combiner des développements WPF, Silverlight et Azure avec l'architecture orientée services de Microsoft Dynamics CRM, nous avons, avec David Rei, réalisé deux clients pour interroger le WebService CRM. Le premier en WPF et le second en Silverlight.

Il y avait quelques synergies entre les deux clients. En voulant reproduire une requête Linq mise au point par David (j'allais quand même pas la réinventer :p), je me suis simplement aperçu que la méthode Exists(Func<T>) des Listes génériques n'existait tout simplement pas dans le Framework Silverlight 2.

 

13-02-2009 13-48-10

 

Un petit coup de reflector sur le Framework SL2 :

 

13-02-2009 13-53-59

 

Ce que l’on peut noter c’est que la version de la mscorlib dans le Framework SL est en version 2.0.5.0 alors que dans le Framework 2 elle est en version 2.0.0.0…

 

Le quoi qu’on fait alors ?

Une petite méthode d’extension :

    public static class Extensions
    {
        public static bool Exists<T>(this IEnumerable<T> lstCourse,
                                  Func<T, bool> predicate)
        {
            foreach (var item in lstCourse)
            {
                if (predicate(item))
                    return true;
            }
            return false;
        }
    }

Comme me l’a, justement fait remarqué Adrien Siffermann, une boucle c’est pas super propre, on peut donc aussi faire ça :

    public static class Extensions
    {
        public static bool Exists<TSource>(this IEnumerable<TSource> lstTSource,
                                  Func<TSource, bool> predicate)
        {
            return (lstTSource.FirstOrDefault(predicate) != null);
        }
    }

 

Ca c’est fait…

 
Ecrit par  SD-9899\greg  le  13/02/2009
0  Commentaires  |  Url de Trackback  | 253  Liens vers ce message | Marquez ce billet avec:        
 
Failed to render control: L’opération sollicitée est interdite car elle dépasse le seuil d’affichage des listes appliqué par l’administrateur.
Failed to render control: L’opération sollicitée est interdite car elle dépasse le seuil d’affichage des listes appliqué par l’administrateur.

Nom *:
URL:
Email:
Commentaires: