Bonjour,
Si personne n'a de réponse a cette question, je vais en perdre le someil !
Voici une requete Linq tout a fait fonctionelle. La seul valeur interessante ici est "Instance".
Je souhaites incrementer le champ instance. Ne pouvant pas/n'ayant pas trouvé le moyen de la faire dans la requete, Je le fais en dehors.
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 var list = (from s in Context.GP_VisiteNames where s.VN_IsSpetial == false where s.VN_OutOfDate == null select new VisitCreatorViewModel() { DateStart = new CalendarViewModel() { Date = DateTime.Now, Instance = 0 }, // <=== ICI RameId = 0, RameName = new AutocompleteStringViewModel() { Value = null }, VisitName = s.VN_Name, Visit = new DropDownListViewModel() { DropDownOptions = (from t in Context.GP_VisiteNames where t.VN_OutOfDate == null select new DropDownOption() { Value = t.VN_ID, Label = t.VN_Name }).ToList() } }).ToList();
Une fois la requete effectuée, j'ai une liste contenant 15 VisitCreatorViewModel, chaqun contient un CalendarViewModel ayant un champ public int Instance.
Voici comment j'ai voulu incrémenter les Instances et vous constaterez que peu a peu la follie s'empare de moi. Car a la fin de chaque boucle, TOUTES oui TOUTES les valeurs d'Instance valent 14.
Ca me rends fou. On ne peut pas faire une simple incrementation en C# ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //1 for (int i = 0; i < list.Count; ++i) list[i].DateStart.Instance = i; //2 int i = 0; foreach (var item in list) item.DateStart.Instance = ++i; //3 for (int i = 0; i < list.Count; ++i) if (i > 0) list[i].DateStart.Instance = list[i - 1].DateStart.Instance + 1;
Pourquoi est-ce tout le temps une référence qui est passé par l'opérateur "=" ?
Merci pour toute aide !
Partager