Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez un type anonyme dans une expression de requête lorsque ces deux conditions s’appliquent :
Vous souhaitez renvoyer uniquement certaines des propriétés de chaque élément source.
Vous n’avez pas besoin de stocker les résultats de la requête en dehors de l’étendue de la méthode dans laquelle la requête est exécutée.
Si vous ne souhaitez renvoyer qu’une propriété ou un champ à partir de chaque élément source, vous pouvez simplement utiliser l’opérateur dot dans la select clause. Par exemple, pour retourner uniquement le ID de chaque student, écrivez la clause select comme suit :
select student.ID;
Exemple
L’exemple suivant montre comment utiliser un type anonyme pour retourner uniquement un sous-ensemble des propriétés de chaque élément source qui correspond à la condition spécifiée.
private static void QueryByScore()
{
// Create the query. var is required because
// the query produces a sequence of anonymous types.
var queryHighScores =
from student in students
where student.ExamScores[0] > 95
select new { student.FirstName, student.LastName };
// Execute the query.
foreach (var obj in queryHighScores)
{
// The anonymous type's properties were not named. Therefore
// they have the same names as the Student properties.
Console.WriteLine(obj.FirstName + ", " + obj.LastName);
}
}
/* Output:
Adams, Terry
Fakhouri, Fadi
Garcia, Cesar
Omelchenko, Svetlana
Zabokritski, Eugene
*/
Notez que le type anonyme utilise les noms de l’élément source pour ses propriétés si aucun nom n’est spécifié. Pour donner de nouveaux noms aux propriétés du type anonyme, écrivez l’instruction select comme suit :
select new { First = student.FirstName, Last = student.LastName };
Si vous essayez cela dans l’exemple précédent, l’instruction Console.WriteLine doit également changer :
Console.WriteLine(student.First + " " + student.Last);
Compilation du code
Pour exécuter ce code, copiez et collez la classe dans une application console C# avec une using directive pour System.Linq.