Incrementer un int. Please kill me
Bonjour,
Si personne n'a de réponse a cette question, je vais en perdre le someil ! :massacre:
Voici une requete Linq tout a fait fonctionelle. La seul valeur interessante ici est "Instance".
Code:
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(); |
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.
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.
Code:
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; |
Ca me rends fou. On ne peut pas faire une simple incrementation en C# ?
Pourquoi est-ce tout le temps une référence qui est passé par l'opérateur "=" ?
Merci pour toute aide ! :arf: