juin
2007
En C#, vous ne pourrez pas affecter null à un int par ex. En VB si ! Quand vous affectez null à un Integer, il prendra la valeur par défaut (0). Pour obtenir la valeur par défaut en C#, vous avez le mot clé default : int i = default(int); Personnellement je trouve cela beaucoup plus propre.
juin
2007
Bart De Smet vient de publier une introduction à PLINQ particulièrement intéressante.
juin
2007
La Microsoft XML Team nous informe que LINQ To XML a changé avec Orcas Beta 1.
juin
2007
Anders Hejlsberg a présenter LINQ lors du MIX 2007. Vous pouvez récupérer sa présentation (sous fome d’un webcast de 72 mins) ici.
juin
2007
J’avais blogué précedemment sur le fait que les tables d’un DataSet n’étaient plus de simple DataTable mais des System.Data.TypedTableBase<DataRowType>. Quelque chose de très intéressant c’est que System.Data.TypedTableBase<DataRowType> implémente IEnumerable<DataRowType>. Du coup, on a le droit d’écrire ce style de requêtes : var column1Values = from row in ds.DataTable1 select row.DataColumn1;
juin
2007
La classe DataReader n’implémente pas l’interface IEnumerable. Du coup pas de requête LINQ. Je viens de trouver un post qui a fait ceci avec deux Extension Methods que je ne manquerai pas d’inclure dans mon projet codeplex : http://www.codeplex.com/ExtensionMethods.
juin
2007
La syntaxe d’un join en LINQ est : from e1 in enumerable1 join e2 in enumerable2 on e1.X equal e2.X select new {e1.X, e1.Y, e1.A, e2.B} Je voulais faire un join sur e1.X equal e2.X et e1.Y equal e2.Y. Je pensais pouvoir utiliser un && comme dans un where mais ça ne marche pas. On ne peut mettre qu’une seule condition à un join. Anders Hejlsberg m’a donné la solution : passer par un anonymous […]
juin
2007
Avec Linq, une nouvelle interface est venu se greffer accompagnant INotifyPropertyChanged : INotifyPropertyChanging. Tout comme sa grande soeur (qui était là depuis .NET 2.0) elle ne comporte qu’un évènement : PropertyChanging. Bien souvent, les évènements en « ing » prennent des CancelEventArgs. Pas celui-là. Il a la même signature que PropertyChanged : public interface INotifyPropertyChanging { event PropertyChangedEventHandler PropertyChanging; }
juin
2007
System.Data.Linq.Table<> ne supporte pas l’extension method Last. Cependant, comme c’est un IEnumerable, l’erreur n’intervient qu’à l’exécution et non à la compilation. L’erreur est la suivante : « The query operator ‘Last’ is not supported. » Cependant on peut feinter : passer par l’extension method Last sur IEnumerable : ((IEnumerable<Person>)(dataContext.Persons)).Last(); ou dataContext.Persons.ToList().Last(); En faisant cela, on comprend pourquoi ce n’est pas supporté par System.Data.Linq.Table<>. En effet, le dernier élément n’est pas le dernier élément ajouté ! Pour info, […]