Dans les scénarios de traitement des données, un certain objet avec une valeur minimale ou maximale avec un attribut spécifique est souvent requis. Linq fournit des méthodes simples pour y parvenir.
passons en revue votre exemple, où l'objet personne a l'attribut DateOfBirth qui peut être vide. Pour trouver les premières personnes de la date de naissance, vous avez d'abord essayé les méthodes suivantes:
mais cela ne récupérera que la plus petite valeur de rendement. Pour récupérer l'objet personne correspondant, une requête supplémentaire est toujours requise.
<code>var firstBornDate = People.Min(p => p.DateOfBirth.GetValueOrDefault(DateTime.MaxValue));</code>
Solution simple: utilisez des agrégats
linq fournit une méthode alternative pour utiliser la méthode agrégée:
Ce fragment de code peut être utilisé pour récupérer la plus petite valeur de rendement et l'objet de personne correspondante dans une seule requête. Il compare itérativement la propriété DateOfbirth de chaque élément avec la valeur minimale actuelle et renvoie les éléments avec la valeur minimale.
<code>var firstBorn = People.Aggregate((curMin, x) => (curMin == null || (x.DateOfBirth ?? DateTime.MaxValue) < (curMin.DateOfBirth ?? DateTime.MaxValue)) ? x : curMin);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!