Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

LINQ 2 XML NullReference Problem

Empfohlene Antworten

Veröffentlicht

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.

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.

  • Autor

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 ... :]

  • Autor

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.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.