2009-07-27 5 views
0

Salut j'ai une requête LINQ ci-dessouscomment puis-je obtenir le min à partir d'un ensemble de données à LINQ requête

var libre = (de la ligne dans dt.AsEnumerable() où row.Field ("AppointmentType") == "FreeTime" sélectionner {nouveau row.Field ("BookedDate") row.Field ("TravelTime")}). min()

ce que je veux faire est d'avoir un minimum sur le champ travelTime et je ne suis pas sûr de la façon de le faire j'ai regardé sur google et aussi sur le m sdn site mais je ne peux pas sembler faire la tête ou la queue de celui-ci

est-ce que quelqu'un a des idées?

Un grand merci

+0

J'ai remplacé l'étiquette C# 3.5 car il n'y a rien de tel. Les numéros de version actuels sont CLR 2.0, C# 3.0, .NET 3.5 –

Répondre

4

Vous pouvez utiliser une surcharge pour Enumerable.Min():

var Free = (
    from row in dt.AsEnumerable() 
    where row.Field("AppointmentType") == "FreeTime" 
    select new { 
    BookedDate = row.Field("BookedDate"), 
    TravelTime = row.Field("TravelTime") 
    } 
).Min(x => x.TravelTime); 

En fait, il n'y a pas besoin de regarder le BookedDate et vous devriez plutôt utiliser

var Free = (
    from row in dt.AsEnumerable() 
    where row.Field("AppointmentType") == "FreeTime" 
    select row.Field("TravelTime") 
).Min(); 

Je continuais votre code original avec quelques modifications pour démontrer la syntaxe pour créer des types anonymes.

+0

merci de votre aide à ce sujet ont inséré votre suggestion et cela fonctionne – kevinw