quelle est la meilleure pratique pour casser une boucle? mes idées étaient:condition dans la récursivité - meilleure pratique
Child Find(Parent parent, object criteria)
{
Child child = null;
foreach(Child wannabe in parent.Childs)
{
if (wannabe.Match(criteria))
{
child = wannabe;
}
else
{
child = Find(wannabe, criteria);
}
if (child != null) break;
}
return child;
}
ou
Child Find(Parent parent, object criteria)
{
Child child = null;
var conditionator = from c in parent.Childs where child != null select c;
foreach(Child wannabe in conditionator)
{
if (wannabe.Match(criteria))
{
child = wannabe;
}
else
{
child = Find(wannabe, criteria);
}
}
return child;
}
ou
Child Find(Parent parent, object criteria)
{
Child child = null;
var enumerator = parent.Childs.GetEnumerator();
while(child != null && enumerator.MoveNext())
{
if (enumerator.Current.Match(criteria))
{
child = wannabe;
}
else
{
child = Find(wannabe, criteria);
}
}
return child;
}
que pensez vous, de meilleures idées? Je cherche la solution niciest: D
mo
Quelle version de .NET/C# est-ce que cela a besoin de travailler? –
version> = 3.0 :) –
Vous appelez Find de manière récursive dans tous les exemples, cela signifie-t-il que Child hérite de Parent? –