{"id":58,"date":"2005-09-15T16:31:00","date_gmt":"2005-09-15T14:31:00","guid":{"rendered":"http:\/\/www.forksoft.de\/blog\/2005\/09\/15\/linq-und-c-30\/"},"modified":"2006-10-05T11:24:41","modified_gmt":"2006-10-05T09:24:41","slug":"linq-und-c-30","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2005\/09\/15\/linq-und-c-30\/","title":{"rendered":"LINQ und C# 3.0"},"content":{"rendered":"<p>Auf der PDC wurde nun erstmals C# Version 3.0. mit Language Integrated Query (LINQ) vorgestellt. Das Projekt wurde durch den C#-Erfinder Anders Hejlsberg aus aus den Erfahrungen von Comega gegr&#252;ndet und ist meiner Ansicht nach wirklich der Hammer. LINQ erlaubt es SQL &#228;hnliche Statements direkt in den C#-Quelltext zu integrieren und damit erleichterten Zugang zu XML und relationalen Daten zu erhalten. Es ist aber nicht darauf beschr&#228;nkt &#8211; prinzipiell lassen sich mit LINQ auch alle Collections leicht &#252;ber SQL filtern: <\/p>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:c5de31da-2397-4c3f-8ab6-71e0ae9a75c7\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\n\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp:\/\/www.CodeHighlighter.com\/\n\n--><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \">[] names <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> {\n  <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Burke<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Connor<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Frank<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, \n  <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Everett<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Albert<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">George<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">,\n  <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">Harris<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">, <\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \">David<\/span><span style=\"color: #000000; \">&quot;<\/span><span style=\"color: #000000; \"> };<\/span><\/div><\/pre>\n<\/div>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:88a335ab-a9da-47f4-8a46-2fbcc7ec40f6\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\n\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp:\/\/www.CodeHighlighter.com\/\n\n--><span style=\"color: #000000; \">IEnumerable<\/span><span style=\"color: #000000; \">&lt;<\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \">&gt;<\/span><span style=\"color: #000000; \"> expr <\/span><span style=\"color: #000000; \">=<\/span><span style=\"color: #000000; \"> \n        from s <\/span><span style=\"color: #0000FF; \">in<\/span><span style=\"color: #000000; \"> names\n        <\/span><span style=\"color: #0000FF; \">where<\/span><span style=\"color: #000000; \"> s.Length <\/span><span style=\"color: #000000; \">==<\/span><span style=\"color: #000000; \"> <\/span><span style=\"color: #000000; \">5<\/span><span style=\"color: #000000; \">\n        orderby s\n        select s.ToUpper();<\/span><\/div><\/pre>\n<\/div>\n<div class=\"wlWriterSmartContent\" id=\"57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:a3f1efe2-ef90-495c-a529-ee7fda699382\" contenteditable=\"false\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">\n<pre style=\"background-color:White;\"><div><!--\n\nCode highlighting produced by Actipro CodeHighlighter (freeware)\nhttp:\/\/www.CodeHighlighter.com\/\n\n--><span style=\"color: #0000FF; \">foreach<\/span><span style=\"color: #000000; \"> (<\/span><span style=\"color: #0000FF; \">string<\/span><span style=\"color: #000000; \"> item <\/span><span style=\"color: #0000FF; \">in<\/span><span style=\"color: #000000; \"> expr)\n    Console.WriteLine(item);<\/span><\/div><\/pre>\n<\/div>\n<p>ergibt: <\/p>\n<p>BURKE<br \/>DAVID<br \/>FRANK<\/p>\n<p>Wer mehr erfahren will kann auf die Seite des <a href=\"http:\/\/msdn.microsoft.com\/netframework\/future\/linq\/\">LINQ-Projekts<\/a> schauen, oder das erste <a href=\"http:\/\/msdn.microsoft.com\/netframework\/future\/linq\/default.aspx?pull=\/library\/en-us\/dndotnet\/html\/linqprojectovw.asp\">White-Paper<\/a> zu LINQ lesen. Beispiele gibt es &#252;brigens unter: <a href=\"http:\/\/msdn.microsoft.com\/vcsharp\/future\/linqsamples\/\">http:\/\/msdn.microsoft.com\/vcsharp\/future\/linqsamples\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auf der PDC wurde nun erstmals C# Version 3.0. mit Language Integrated Query (LINQ) vorgestellt. Das Projekt wurde durch den C#-Erfinder Anders Hejlsberg aus aus den Erfahrungen von Comega gegr&#252;ndet und ist meiner Ansicht nach wirklich der Hammer. LINQ erlaubt es SQL &#228;hnliche Statements direkt in den C#-Quelltext zu integrieren und damit erleichterten Zugang zu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/58"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":0,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}