est-il possible de sauter la sélection de. Sélectionner la méthode dans Linq -Liquité "Continuer" en avant ..each?
3 Réponses :
var myFoos = from foo in allFoos
let platform = LoadPlatform(foo)
where platform != "BadPlatform"
select LoadOwner(foo);
Mais je charge des plates-formes dans la sélection.
@pencilcake - Je ne suis pas sûr de ce que vous voulez dire - votre test est contre la plate-forme que vous chargez. Comment allez-vous vérifier la condition sans le charger en premier?
Vous pouvez faire quelque chose comme ceci:
var myFoos = allFoos
.Select (foo => new {Platform = LoadPlatform(foo), Foo = foo})
.Where(all => all.Platform != "BadPlatform")
.Select(all => {
var platform = all.Platform;//Not "BadPlatform"
var owner = LoadOwner(all.Foo);
// .... Som eother loads
});
Vous devez utiliser un où code> pour filtrer les éléments que vous ne voulez pas. Cela n'est pas possible avec votre code actuel, mais il y a beaucoup de place à refactoring. Réécrivez-le comme ceci: var myFoos = allFoos
.Select(foo => new { Platform = LoadPlatform(foo), Foo = foo })
.Where(o => o.Platform != "BadPlatform")
.Select(o => new { Platform = o.Platform, Owner = LoadOwner(o.Foo), ... })
// ...continue with your other code
A
où code> avantsélectionnez code>?