J'ai le code suivant :
public double CalculateDailyProjectPullForceMax(DateTime date, string start = null, string end = null)
{
Log("Calculating Daily Pull Force Max...");
var pullForceList = start == null
? _pullForce.Where((t, i) => _date[i] == date).ToList() // implicitly captured closure: end, start
: _pullForce.Where(
(t, i) => _date[i] == date && DateTime.Compare(_time[i], DateTime.Parse(start)) > 0 &&
DateTime.Compare(_time[i], DateTime.Parse(end)) < 0).ToList();
_pullForceDailyMax = Math.Round(pullForceList.Max(), 2, MidpointRounding.AwayFromZero);
return _pullForceDailyMax;
}
Maintenant, j'ai ajouté un commentaire sur la ligne que ReSharper suggère un changement. Qu'est-ce que cela signifie, ou pourquoi faudrait-il le changer ? implicitly captured closure: end, start
6 votes
MyCodeSucks s'il vous plaît, corrigez la réponse acceptée : celle de kevingessner est fausse (comme expliqué dans les commentaires) et l'avoir marquée comme acceptée va induire les utilisateurs en erreur s'ils ne remarquent pas la réponse de Console.
1 votes
Vous pouvez également rencontrer ce problème si vous définissez votre liste en dehors d'un try/catch et que vous effectuez tous vos ajouts dans le try/catch, puis définissez les résultats dans un autre objet. Le fait de déplacer la définition/l'ajout à l'intérieur du try/catch permettra la GC. J'espère que cela a du sens.