j'ai regardé la doc des requetes linq (https://docs.microsoft.com/fr-fr/dot...e-linq-queries) mais je ne comprend pas comment je fais pour avoir les données du jour j sachant que ces données change chaque jour
j'ai regardé la doc des requetes linq (https://docs.microsoft.com/fr-fr/dot...e-linq-queries) mais je ne comprend pas comment je fais pour avoir les données du jour j sachant que ces données change chaque jour
Pour la troisième fois, chaque appel à DataLoader.Load fait une lecture du fichier. Si les données de ton fichier ont changé, elles seront à jour dans la liste renvoyée.
En triant cette liste sur la date de la plus récente à la plus ancienne, tu auras les entrées du dernier jour en premier.
oui mais du coup j'aurais une liste avec les jours les plus en anciens au plus récent ?
Le temp de comprendre pour la date j'essaye de récupérer les dernières données que je reçois
j'ai une erreur et l'espion me met que TempInt est égale a 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<Donnees> TempInt = new List<Donnees>(); TxtBoxTempInt.Text = TempInt.Last().ToString();
j'ai utilisé cette exemple pour faire ça
mais je pense que je dois prendre la liste DataLoader et non données mais lorsque je remplace donnees par dataloader j'ai aussi une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //On a une classe Joueur.cs avec une propriété Nom. List<Joueur> mesjoueurs = new List<Joueur>(); Joueur JoueurA = new Joueur("Arnaud"); mesjoueurs.add(JoueurA); Joueur JoueurB = new Joueur("Leelou"); mesjoueurs.add(JoueurB); Console.WriteLine("Le dernier joueur est {0}.", mesjoueurs.Last().Nom); //=> " Le dernier joueur est Leelou" Console.WriteLine("Le joueur max est {0}.", mesjoueurs.Max()); //=> At least one object must implement IComparable.
"impossible d'utiliser les types static en tant que qu'arguments de type"
j'ai changé par ça
c'est beaucoup mieux qu'avant ça ne plante plus mais par contre ça ne m'affiche pas la dernière valeur mais tout le temps "1"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 List<Donnees> TempInt = new List<Donnees>(); TempInt.Add(new Donnees()); TxtBoxTempInt.Text = TempInt.Count.ToString();
Pour trier par date dans l'ordre croissant OrderBy.
Pour trier par date dans l'ordre décroissant OrderByDescending.
Pour le reste je ne comprends pas ce que tu cherches à faire.
je voudrais récupérer les dernières données reçu j'ai vu que je pouvais utiliser .Last ou .count mais cela m'affiche 1 quand j'utilise count et avec .Last j'ai le nom de mon document visual studio
Ensuite pour trier la date dans l'ordre décroissant j'ai fais ça
quand je met dans mon graphique "Date" pour la valeur des abscisse j'ai le jour 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<Donnees> listdecroissantjour = new List<Donnees>(); var listedecroissantjour = DataLoader.Load(path).OrderByDescending(it => it.Date);
Forcément si tu crée une liste vide pour y insérer un seul enregistrement... alors Count va toujours renvoyer 1 et Last va te renvoyer l'unique enregistrement. Et tu as n'a pas le nom de ta solution Visual Studio, tu as le nom complet de classe Donnees renvoyé par ToString().
Je t'ai pourtant fourni les méthodes Linq à appeler, et dans l'ordre en plus...
j'arrive pas savoir comment utiliser les méthodes..
Vous pouvez me montrer comment je dois faire
Ce ne serait pas te rendre service de te donner le code tout prêt. Il faut que tu apprennes à réfléchir par toi même.
Procède par étape.
Place ce que tu reçois de DataLoader.Load() dans une variable data et commence par trier sur la date avec data.OrderBy().
Une fois le tri effectué la donnée avec le jour le plus récent se trouvera en dernière position.
Récupère cet enregistrement avec data.Last() et lis sa propriété Date pour extraire cette date.
Une fois en possession de la date, utilise data.Where() pour filtrer les éléments dont la date correspond.
Ce sont ces données filtrées qui serviront de DataSource au graphique.
J'estime avoir suffisamment donné de détails sur la procédure à suivre (même trop). Le rôle des membres du forum est de te mettre sur la voie, pas de faire le travail à ta place.
j'essaye de suivre vos conseils mais bon sans succès ...
je suis aller jusqu'à l'étape de récupération de la dernière date :
j'ai utilisé un textbox pour vérifié si j'avais bien la dernière date mais le txtbox m'affiche : "System.Linq.OrderedEnumerable`2"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var data = DataLoader.Load(path); var jours_decroissant = data.OrderByDescending(it => it.Date); jours_decroissant.Last(); TxtBoxTempExt.Text = jours_decroissant.ToString();
je suis toujours bloqué dans tous les sens ..
j'ai remarqué un nouveau problème aussi sur le graph qu'on avait réalisé la date n'est pas la bonne
le code :
et lorsque je met "Date" au lieu de l'heure sur l'axe des abscisse j'ai des dates de 2028 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 string path = "C:/Users/Lucas/Documents/test.csv"; chart1.DataSource = DataLoader.Load(path); chart1.Series.Clear(); chart1.Series.Add( new Series() { XValueMember = "Heure", YValueMembers = "HumiditeInterieure", ChartType = SeriesChartType.Line, IsVisibleInLegend = true, IsValueShownAsLabel = false, LegendText = "Humidité intérieure en %", BorderWidth = 3, }); chart1.Series.Add( new Series() { XValueMember = "Heure", YValueMembers = "HumiditeExterieure", ChartType = SeriesChartType.Line, IsVisibleInLegend = true, IsValueShownAsLabel = false, LegendText = "Humidité extérieure en %", BorderWidth = 3, });
Tu tries par ordre décroissant donc Last() va renvoyer le premier jour et non le dernier.
Je ne pouvais pas être plus clair :
Tu as utilisé OrderByDescending et pas OrderBy.
jours_decroissant.Last(); va chercher le dernier enregistrement mais tu ne fait rien de son retour...
Là encore, je t'ai dit de lire sa propriété "Date.
TxtBoxTempExt.Text = jours_decroissant.ToString(); affiche "System.Linq.OrderedEnumerable`2", parce que "jours_decroissant" est ta liste triée. Ce n'est pas une date.
Pour l'affichage de l'heure sur le graphique, c'est comme pour la grille, il faut mettre un format sur ton axe.
chart1.ChartAreas[0].AxisX.LabelStyle.Format = "HH:mm:ss";.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager