I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Den kan løses på forskellige måder, den første og den nemmeste, en Func
Altså: Func<XElement, string> CheckForValue = x => x != null ? x.Value : null;
var res = from userNumber in xdoc.Elements() select new { User = userNumber.Element("userNumber"), Group = CheckForValue(userNumber.Element("groupNumber")) };
Eller den som jeg bedre kan li :), hvor du smidee en extension på XElement sådan at du automatisk for genereret default elementet hvis dette mangler:
Func<XElement, string> CheckForValue = x => x != null ? x.Value : null;
var res = from userNumber in xdoc.Elements() select new { User = userNumber.Element("userNumber"), Group = CheckForValue(userNumber.Element("groupNumber")), GroupAlternative = userNumber.Element("groupNumber").ValueOrDefault("GroupAlternative") };
og extensionen: public static class Extensions { public static XElement ValueOrDefault(this XElement element, XName name) { if (element != null) return new XElement(name, element.Value); else return new XElement(name); } }
Jeg har behov for at få en where condition ind i min linq kode:
XDocument xdoc = XDocument.Load(@filepath); try { var res = from userNumber in xdoc.Descendants("basicModule") where userNumber.Element("userNumber").ToString() == "1234" select new { USERNUMBER = userNumber.Element("userNumber").Value, GROUPNUMBER = CheckForValue(userNumber.Element("groupNumber")), };
Det kompilerer ok, men der returneres ingen data, selv om der i xml dokumentet er et userNumber med 1234 i ?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.