lilith2k3 Geschrieben 26. Mai 2010 Geschrieben 26. Mai 2010 Hi, vielleicht kann mir jemand helfen...? Ich habe folgendes Problem: Ich beziehe Daten aus einer Datenbank, die mir als XML-Resultset zurückgegeben werden. Diese lege ich in einem XDocument ab. Nun wollte ich gerne mittels LINQ die einzelnen Resultsets in einzelne Objekte packen und habe folgende Schwierigkeit: var Daten = from item in result select new (Bla=item.Element("Bla").value); So in etwa sieht meine Abfrage aus. Allerdings kann es sein, daß die Zuweisung insgesamt NULL ergibt, weil ein Item nicht jedesmal vorhanden ist. Weiß einer eine Möglichkeit, wie ich das new {} gestalten könnte, daß er entweder wenn Element vorhanden den value nimmt oder, wenn element nicht vorhanden einfach string.empty? Das in einen Haufen try-catch-Blöcke zu schreiben finde ich unelegant, ist aber bisher meine einzige Lösung. item.Element("Bla").value löst ja schon eine Exception aus... wenn's nur null nehmen würde, statt der Exception wär mir ja schon geholfen. Danke im voraus. Zitieren
Rookian Geschrieben 26. Mai 2010 Geschrieben 26. Mai 2010 bla = item == null ? String.Empty : (string) item.Element("Bla").value Sofern nur item null sein kann. falls value schon nen String zurückgibt kannst du den cast logischerweise auch sein lassen. Hab das jetzt mal so aus dem Stehgreif geschrieben. Zitieren
lilith2k3 Geschrieben 26. Mai 2010 Autor Geschrieben 26. Mai 2010 Hm, danke! Aber das löst das Prinzip leider nicht. Die Schwierigkeit besteht darin, daß das Resultset <result> <Bla>"Blah"</Bla> </result> Mal <Bla> enthält und mal nicht. Und es ist auch klar, daß der Zugriff auf item.Element("Bla").value eine Exception auslöst, wenn's das Tag nicht gibt. Ich bräuchte sowas wie eine "Exist"-Funktion oder so. Dann könnte ich das einfach mit in meine Abfrage (mittels anonymer Funktion) einbauen. *grübel* Vielleicht hat ja noch jemand eine Idee ... :] Zitieren
lilith2k3 Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 Falls nochjemand auf so ein Problem stoßen sollte: Ich bin ja auch doof *ankopphau* Wenn ich den Selectbefehl lediglich auf das Element mache und nicht auf seinen Inhalt, bekomme ich auch ordentlicherweise null zurück. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.