Pourquoi les variables out ne sont pas autorisées dans la clause de requête?C# 7 Les déclarations de variable de variable et de variable de modèle ne sont pas autorisées dans une clause de requête
Si je sur les variables ici, il échoue:
string json = "{'PayDays':['2017-07-07','2017-07-21','2017-08-04','2017-08-18']}";
var pd = JsonConvert.DeserializeObject<Accounting>(json);
var rm = from item in pd.PayDays
where (DateTime.TryParse(item, out DateTime dateresult)) ?
dateresult.Subtract(DateTime.Now).Days >= 0 ? true : false : false
select item;
rm.Dump();
Mais ancienne fonctionne:
DateTime result;
var rm = from item in pd.PayDays
where DateTime.TryParse(item, out result) ? (result.Subtract(DateTime.Now).Days >= 0 ? true : false) : false
select item;
rm.Dump();
Du point de vue linguistique, la traduction semble assez simple: l'équivalent de 'du poste dans pd.PayDays.AsParallel() let resultHolder = new displayclass() où DateTime.TryParse (point, sur resultHolder.result)? ...: ... select item; ', avec le même type de classes' DisplayClass' générées qui sont déjà générées pour d'autres raisons. Pouvez-vous donner un exemple où cette approche simple ne fonctionnerait pas ou se comporterait de manière inattendue? – hvd