Bonjour à tous,
J'ai du mal à comprendre cette forme (le ? et les:
dtCategories.AsEnumerable().Where(o => ((o.IsNull("cat_parent")) ? Guid.Empty : o.Field<Guid>("cat_parent")) == ParentID)
Quelqu'un peut m'expliquer comment ca marche, svp ?
Merci.![]()








Bonjour à tous,
J'ai du mal à comprendre cette forme (le ? et les:
dtCategories.AsEnumerable().Where(o => ((o.IsNull("cat_parent")) ? Guid.Empty : o.Field<Guid>("cat_parent")) == ParentID)
Quelqu'un peut m'expliquer comment ca marche, svp ?
Merci.![]()
Salut,
c'est un opérateur ternaire, l'équivalent d'un si / sinon sur une ligne
le ? signifie "if" et le : signifie "else"
tu met la condition à gauche, la valeur si true au milieu et la valeur si false à droite.








Merci Thelpi.
Si j'ai bien compris, ca veut dire :
Si le champ "cat_parent" est null alors on renvoi Guid.Empty sinon on renvoi la valeur (qui est un guid) du champ "cat_parent" dont le champ "cat_id" est égal à ParentID.
C'est bien ca ?
A utiliser avec parcimonie
Dans certains cas c'est bien pratique mais l'abus peut rendre un code completement illisible
J'ai deja vu des code ou un geek s'amusait a imbriquer ses operateurs ternaire. Lui meme ne s'y retrouvait plus
Des que l'expression devient trop complexe un bon if else est toujours préférable a mon avis !








merci beaucoup à vous deux.
Je demande surtout pour la traduction. Je trouve cette feçon de coder quelque peu "babare". Je suis pour du code facilement déchiffrable par tous.![]()
Partager