La vérification de la valeur null dans une Expression Lambda
Dans le code ci-dessous je suis en train d'essayer d'obtenir le nul, la chaîne vide, et des composants source à partir d'une Liste. Je n'ai pas testé ce code mais mon intuition me dit qu'il va casser lorsque le filtrage de la Liste pour la source et la chaîne vide si elle vient par une valeur null.
J'ai essayé d'extraire les valeurs null en premier, mais je suis encore le filtrage de la Liste de base. Comment puis-je ré-écrire ce code pour accomplir ce que je suis en train de faire de la meilleure façon?
List<LineItem> nullList=itemsList.Where(s => s[Constants.ProductSource] == null)
.ToList();
NALineItems = itemsList.Where(s => s[Constants.ProductSource] == source
|| s[Constants.ProductSource] == String.Empty)
.ToList();
NALineItems = nullList.Union(NALineItems).ToList();
s[Constantes.ProductSource] est un attachement à la propriété de Microsoft ECommerce PurchaseOrder objet. C'est en fait une autre propriété d'un objet.
- "Je n'ai pas testé ce code mais mon intuition me dit qu'il va casser", cela signifie Que vous vous posez cette question prématurément.
- Êtes-vous conscient de la Chaîne.IsNullOrEmpty ?
- Ne
itemsList
contiennent des tableaux? Quel est ces[Constants.ProductSource]
? - Nous devrions savoir si notre code va rompre dans ces cas, sans le tester en premier. C'est en partie ce que je suis en train d'accomplir.
- Je ne suis pas d'accord - si vous avez un peu de code déjà aller de l'avant et essayer d'écrire quelques tests (écrire les tests que vous le supposez peut casser en premier!) - il a de la valeur et la prochaine fois que vous rencontrez une chose de similaire, vous savez à quoi s'attendre.
Vous devez vous connecter pour publier un commentaire.
Basé sur "je suis en train d'essayer d'obtenir le nul, la chaîne vide, et des composants source à partir d'une Liste" je suppose que vous voulez dire que vous voulez une liste avec ces 3 valeurs spécifiques.
Est-il une raison pour laquelle vous ne pouvez pas combiner l'expression en un seul? Je voudrais également ajouter à vérifier si la clé existe dans le dictionnaire:
itemslist
est une liste de Dictionnaires à partir de votre code, mais il pourrait aussi être une liste de listes (si les Constantes.ProductSource est un entier). Il faudrait que je vois plus le contexte.