J'essaye d'exécuter le code suivant et cela fonctionne très bien si myObject est! = Null mais jette une erreur "valeur ne peut pas être nulle" si myObject est null. Idéalement, si myObject est nulle alors je voudrais avoir juste le HashSet ont une valeur unique de 0.Hashset "valeur ne peut pas être nulle" erreur
var ids = new HashSet<int>(myObject.Select(p => p.ID));
J'ai essayé quelques choses différentes. Je ne suis pas sûr pourquoi je pensais que cela fonctionnerait.
var ids = new HashSet<int>(myObject.Select(p => p.ID).Where(p => p != null));
et ce qui semblait devoir fonctionner.
var ids = new HashSet<int>(myObject.Select(p => (p == null) ? 0 : p.ID));
Finalement, cela a fonctionné, mais il semble qu'il y ait une meilleure solution.
var ids = new HashSet<int>(myObject!= null ? myObject.Select(p => p.ID) : new int[] {0});
Quelqu'un a une meilleure façon de le faire?
Pensez-vous que je sacrifier la lisibilité pour la compacité? Je le regarde et cela a du sens, mais quelqu'un d'autre va-t-il voir cette ligne de code et la trouver trop compliquée? – Jay