Je veux obtenir la fonction lambda qui interrogera les éléments qui ont été soumis à la dernière minute. Comment spécifier cela?TimeSpan dans les expressions lambda
var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...)
Je veux obtenir la fonction lambda qui interrogera les éléments qui ont été soumis à la dernière minute. Comment spécifier cela?TimeSpan dans les expressions lambda
var items= Items.Where(i=>DateTime.Now.Subtract(i.Date)...)
Si les éléments ont chacun une propriété Date, vous pouvez faire:
DateTime startDate = DateTime.Now - new TimeSpan(0,1,0);
var items = Items.Where(i => i.Date >= startDate);
Vous pouvez mettre le calcul dans l'instruction Where directement, mais il serait recom mis sur chaque article, donc je préfère garder l'heure de départ de la déclaration.
Faites votre choix
var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalMinutes < 1)
ou
var items= Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60)
I comme le second. Il semble symétrique avec le => et <=. –
Que diriez-vous:
DateTime cutoffPoint = DateTime.Now.AddMinutes(-1);
var items = Items.Where(i => (i.Date >= cutoffPoint));
Vous vouliez probablement dire 'DateTime.Now.AddMinutes (-1);'? –
Oui, bien sûr, merci de me l'avoir corrigé. –
var items = Items.Where(i => DateTime.Now.Subtract(i.Date).TotalSeconds <= 60);
Selon la quantité d'éléments de votre liste vous contient pouvez enregistrer DateTime.Now à une variable, il est donc le même sur toutes les comparaisons ..
Je pense que vous voulez dire '.TotalSeconds' et pas' .Seconds' - ce serait toujours <60. – configurator
Oui, je le fais (mis à jour) - merci! – andyp
c'est l'erreur que j'ai faite – zsharp
J'ai utilisé ceci pour la raison décrite – zsharp