Null im Lambda-Ausdruck
In den folgenden code, den ich versuche zu bekommen, die null, eine leere Zeichenfolge, und source-Komponenten aus einer Liste aus. Ich habe nicht getestet mit diesem code noch nicht, aber meine intuition sagt mir, es wird brechen, wenn das filtern der Liste für die Quell-und die leere Zeichenkette, falls es durch einen null-Wert.
Habe ich versucht zu extrahieren, die null-Werte zuerst, aber ich bin immer noch Filterung der base-Liste. Wie kann ich re-schreiben Sie diesen code ausführen, was ich versuche zu tun in der besten Weise?
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[Konstanten.ProductSource] ist ein attachment-Eigenschaft Microsoft ECommerce PurchaseOrder-Objekt. Es ist im Grunde eine andere Eigenschaft eines Objekts.
- "Ich habe nicht getestet mit diesem code noch nicht, aber meine intuition sagt mir, es wird brechen", das bedeutet, Dass Sie diese Frage vorzeitig.
- Sie sind sich bewusst, String.IsNullOrEmpty ?
- Tut
itemsList
enthalten arrays? Was ist dass[Constants.ProductSource]
? - Wir sollten wissen, ob unser code ist gonna brechen in diesen Fällen ohne den Test zuerst. Das ist teilweise das, was ich versuche zu erreichen.
- Damit bin ich nicht einverstanden - wenn Sie einige code schon gehen Sie vor und probieren Sie es aus, schreiben einige tests (schreiben der tests, die Sie angenommen, könnte erstmal Pause!) - es hat Wert, und das nächste mal kommen Sie über eine ähnliche Sache, die Sie wissen, was zu erwarten ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf "ich werde versuchen, die null, eine leere Zeichenfolge, und source-Komponenten aus einer Liste" ich nehme an, Sie meinen, Sie wollen eine Liste mit diesen 3 bestimmten Werte.
Gibt es einen Grund, warum Sie nicht kombinieren können Sie den Ausdruck in ein? Ich würde auch ein überprüfen, dass der Schlüssel im Wörterbuch vorhanden ist:
itemslist
ist eine Liste der Wörterbücher, die von Ihrem code, aber es könnte auch sein, eine Liste von Listen (wenn Konstanten.ProductSource ist eine ganze Zahl). Ich hätte, um zu sehen, mehr Kontext.