-1
votes

Comment combiner les horaires proches de Linq

J'ai une liste d'objets avec deux propriétés (début et fin). Je dois pouvoir prendre des articles dont les heures relèvent d'une variable (option de configuration) niveau de tolérance et de les combiner.

exemple: strong> p>

tolérance: em> 1 heure p> xxx pré>

puisque la tolérance est une heure, je dois être capable de "combiner" ces deux dans une seule tranche ou autre objet similaire avec, dans cet exemple, les statistiques suivantes: p> xxx pré>

une classe d'échantillons qui J'utilise pour les tests suit. La classe de production a deux propriétés telles que plusieurs autres. P>

public class TimeTest
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }

}


4 commentaires

Que se passe-t-il avec trois articles où 1 et 2 sont en une heure et 2 et 3 sont en une heure?


Si ce sont des objets DateTime , les soustraits vous donnera une différence Timespan .


Tous doivent être combinés. Donc, si 1 est de 13h à 14h, 2 est de 14h30 à 16h et 3 de 17h à 18h, le temps de sortie final doit être de 1pm à 18h.


Pouvez-vous publier ce que ressemblent les objets, et peut-être un exemple de code où vous avez essayé de le faire vous-même?


3 Réponses :


0
votes

Cela me semble comme une simple situation min / max. xxx

initialise une construction de 1pm - 4pm comme vous le voyez comme min et max contiendra vos heures de début et de fin.


0 commentaires

1
votes

Lorsque vous souhaitez itérer une séquence et utilisez certains critères pour combiner parfois des éléments consécutifs dans un seul élément, vous pouvez utiliser un bloc Itérateur pour garder l'état sur l'élément "Précédent" tout en itération:

var combinedItems = items.Combine();


1 commentaires

Merci beaucoup. Très élégant et très serviable. Acclamations.



0
votes

Une autre façon d'y parvenir, à l'aide d'agrégat.

pour l'entrée xxx

où l'intervalle est défini comme xxx p> Vous pouvez xxx

où la mergeance est définie comme xxx

sortie

= "https://i.stack.imgur.com/zkpir.png" rel = "nofollow NOREFERRER"> entrez Description de l'image ici

exemple dans le violon < / p>


0 commentaires