CINXE.COM
Language Integrated Query - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Language Integrated Query - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"bb9267fe-5930-4138-9fef-5aeb5e02481b","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Language_Integrated_Query","wgTitle":"Language Integrated Query","wgCurRevisionId":1273617935,"wgRevisionId":1273617935,"wgArticleId":13706337,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Articles needing cleanup from September 2024","All pages needing cleanup","Articles containing how-to sections","Articles needing additional references from September 2024","All articles needing additional references","Articles with multiple maintenance issues","Wikipedia articles in need of updating from November 2021", "All Wikipedia articles in need of updating","All articles with unsourced statements","Articles with unsourced statements from October 2018",".NET terminology","Query languages","XML data access"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Language_Integrated_Query","wgRelevantArticleId":13706337,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgRedirectedFrom":"Cω","wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgInternalRedirectTargetUrl": "/wiki/Language_Integrated_Query#Predecessor_languages","wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q595637","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready", "ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.16"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Language Integrated Query - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Language_Integrated_Query#Predecessor_languages"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Language_Integrated_Query&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Language_Integrated_Query#Predecessor_languages"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Language_Integrated_Query rootpage-Language_Integrated_Query skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Language+Integrated+Query" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Language+Integrated+Query" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Language+Integrated+Query" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Language+Integrated+Query" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Architecture" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Architecture"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Architecture</span> </div> </a> <button aria-controls="toc-Architecture-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Architecture subsection</span> </button> <ul id="toc-Architecture-sublist" class="vector-toc-list"> <li id="toc-Standard_query_operator_API" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Standard_query_operator_API"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Standard query operator API</span> </div> </a> <ul id="toc-Standard_query_operator_API-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Language_extensions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Language_extensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Language extensions</span> </div> </a> <ul id="toc-Language_extensions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-LINQ_providers" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#LINQ_providers"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>LINQ providers</span> </div> </a> <ul id="toc-LINQ_providers-sublist" class="vector-toc-list"> <li id="toc-LINQ_to_Objects" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#LINQ_to_Objects"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3.1</span> <span>LINQ to Objects</span> </div> </a> <ul id="toc-LINQ_to_Objects-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-LINQ_to_XML_(formerly_called_XLINQ)" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#LINQ_to_XML_(formerly_called_XLINQ)"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3.2</span> <span>LINQ to XML (formerly called XLINQ)</span> </div> </a> <ul id="toc-LINQ_to_XML_(formerly_called_XLINQ)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-LINQ_to_SQL_(formerly_called_DLINQ)" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#LINQ_to_SQL_(formerly_called_DLINQ)"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3.3</span> <span>LINQ to SQL (formerly called DLINQ)</span> </div> </a> <ul id="toc-LINQ_to_SQL_(formerly_called_DLINQ)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-LINQ_to_DataSets" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#LINQ_to_DataSets"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3.4</span> <span>LINQ to DataSets</span> </div> </a> <ul id="toc-LINQ_to_DataSets-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Performance" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Performance"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Performance</span> </div> </a> <ul id="toc-Performance-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-PLINQ" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#PLINQ"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>PLINQ</span> </div> </a> <ul id="toc-PLINQ-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Predecessor_languages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Predecessor_languages"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Predecessor languages</span> </div> </a> <ul id="toc-Predecessor_languages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ports" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Ports"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Ports</span> </div> </a> <ul id="toc-Ports-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Language Integrated Query</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 23 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-23" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">23 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%B9%D9%84%D8%A7%D9%85_%D8%A7%D9%84%D8%AA%D9%83%D9%85%D9%8A%D9%84%D9%8A_%D8%A7%D9%84%D9%84%D8%BA%D9%88%D9%8A_(%D9%84%D9%8A%D9%86%D9%83)" title="الاستعلام التكميلي اللغوي (لينك) – Arabic" lang="ar" hreflang="ar" data-title="الاستعلام التكميلي اللغوي (لينك)" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/LINQ" title="LINQ – Czech" lang="cs" hreflang="cs" data-title="LINQ" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/LINQ" title="LINQ – Danish" lang="da" hreflang="da" data-title="LINQ" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/LINQ" title="LINQ – German" lang="de" hreflang="de" data-title="LINQ" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – Spanish" lang="es" hreflang="es" data-title="Language Integrated Query" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%84%DB%8C%D9%86%DA%A9_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)" title="لینک (زبان برنامهنویسی) – Persian" lang="fa" hreflang="fa" data-title="لینک (زبان برنامهنویسی)" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – French" lang="fr" hreflang="fr" data-title="Language Integrated Query" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/LINQ" title="LINQ – Korean" lang="ko" hreflang="ko" data-title="LINQ" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/LINQ" title="LINQ – Icelandic" lang="is" hreflang="is" data-title="LINQ" data-language-autonym="Íslenska" data-language-local-name="Icelandic" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/LINQ" title="LINQ – Italian" lang="it" hreflang="it" data-title="LINQ" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/LINQ" title="LINQ – Hebrew" lang="he" hreflang="he" data-title="LINQ" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – Dutch" lang="nl" hreflang="nl" data-title="Language Integrated Query" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E7%B5%B1%E5%90%88%E8%A8%80%E8%AA%9E%E3%82%AF%E3%82%A8%E3%83%AA" title="統合言語クエリ – Japanese" lang="ja" hreflang="ja" data-title="統合言語クエリ" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/LINQ" title="LINQ – Polish" lang="pl" hreflang="pl" data-title="LINQ" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – Portuguese" lang="pt" hreflang="pt" data-title="Language Integrated Query" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – Russian" lang="ru" hreflang="ru" data-title="Language Integrated Query" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Pyet%C3%ABsori_i_integruar_n%C3%AB_gjuh%C3%AB_programuese" title="Pyetësori i integruar në gjuhë programuese – Albanian" lang="sq" hreflang="sq" data-title="Pyetësori i integruar në gjuhë programuese" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/LINQ" title="LINQ – Finnish" lang="fi" hreflang="fi" data-title="LINQ" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – Swedish" lang="sv" hreflang="sv" data-title="Language Integrated Query" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Language_Integrated_Query" title="Language Integrated Query – Turkish" lang="tr" hreflang="tr" data-title="Language Integrated Query" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/LINQ" title="LINQ – Ukrainian" lang="uk" hreflang="uk" data-title="LINQ" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Ng%C3%B4n_ng%E1%BB%AF_truy_v%E1%BA%A5n_t%C3%ADch_h%E1%BB%A3p" title="Ngôn ngữ truy vấn tích hợp – Vietnamese" lang="vi" hreflang="vi" data-title="Ngôn ngữ truy vấn tích hợp" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E8%AF%AD%E8%A8%80%E9%9B%86%E6%88%90%E6%9F%A5%E8%AF%A2" title="语言集成查询 – Chinese" lang="zh" hreflang="zh" data-title="语言集成查询" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q595637#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Language_Integrated_Query" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Language_Integrated_Query" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Language_Integrated_Query"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Language_Integrated_Query"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Language_Integrated_Query" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Language_Integrated_Query" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&oldid=1273617935" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Language_Integrated_Query&id=1273617935&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLanguage_Integrated_Query%23Predecessor_languages"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FLanguage_Integrated_Query%23Predecessor_languages"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Language_Integrated_Query&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Language_Integrated_Query&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q595637" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(Redirected from <a href="/w/index.php?title=C%CF%89&redirect=no" class="mw-redirect" title="Cω">Cω</a>)</span></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Microsoft .NET Framework component</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">"LINQ" redirects here. For other uses, see <a href="/wiki/Linq_(disambiguation)" class="mw-redirect mw-disambig" title="Linq (disambiguation)">Linq (disambiguation)</a>.</div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><style data-mw-deduplicate="TemplateStyles:r1248332772">.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}</style><table class="box-Multiple_issues plainlinks metadata ambox ambox-content ambox-multiple_issues compact-ambox" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span"><div class="multiple-issues-text mw-collapsible"><b>This article has multiple issues.</b> Please help <b><a href="/wiki/Special:EditPage/Language_Integrated_Query" title="Special:EditPage/Language Integrated Query">improve it</a></b> or discuss these issues on the <b><a href="/wiki/Talk:Language_Integrated_Query" title="Talk:Language Integrated Query">talk page</a></b>. <small><i>(<a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove these messages</a>)</i></small> <div class="mw-collapsible-content"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-Howto plainlinks metadata ambox ambox-content" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>contains <a href="/wiki/Wikipedia:What_Wikipedia_is_not#NOTHOWTO" title="Wikipedia:What Wikipedia is not">instructions, advice, or how-to content</a></b>.<span class="hide-when-compact"> Please help <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Language_Integrated_Query&action=edit">rewrite the content</a> so that it is more encyclopedic or <a href="https://meta.wikimedia.org/wiki/Help:Transwiki" class="extiw" title="m:Help:Transwiki">move</a> it to <a href="https://en.wikiversity.org/wiki/" class="extiw" title="v:">Wikiversity</a>, <a href="https://en.wikibooks.org/wiki/" class="extiw" title="b:">Wikibooks</a>, or <a href="https://en.wikivoyage.org/wiki/" class="extiw" title="voy:">Wikivoyage</a>.</span> <span class="date-container"><i>(<span class="date">September 2024</span>)</i></span></div></td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-More_citations_needed plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Language_Integrated_Query" title="Special:EditPage/Language Integrated Query">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and removed.<br /><small><span class="plainlinks"><i>Find sources:</i> <a rel="nofollow" class="external text" href="https://www.google.com/search?as_eq=wikipedia&q=%22Language+Integrated+Query%22">"Language Integrated Query"</a> – <a rel="nofollow" class="external text" href="https://www.google.com/search?tbm=nws&q=%22Language+Integrated+Query%22+-wikipedia&tbs=ar:1">news</a> <b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?&q=%22Language+Integrated+Query%22&tbs=bkt:s&tbm=bks">newspapers</a> <b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?tbs=bks:1&q=%22Language+Integrated+Query%22+-wikipedia">books</a> <b>·</b> <a rel="nofollow" class="external text" href="https://scholar.google.com/scholar?q=%22Language+Integrated+Query%22">scholar</a> <b>·</b> <a rel="nofollow" class="external text" href="https://www.jstor.org/action/doBasicSearch?Query=%22Language+Integrated+Query%22&acc=on&wc=on">JSTOR</a></span></small></span> <span class="date-container"><i>(<span class="date">September 2024</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> </div> </div><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Language Integrated Query</caption><tbody><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="/wiki/Microsoft_Corporation" class="mw-redirect" title="Microsoft Corporation">Microsoft Corporation</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="/wiki/Microsoft_Corporation" class="mw-redirect" title="Microsoft Corporation">Microsoft Corporation</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data">Strongly typed</td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><a rel="nofollow" class="external free" href="https://learn.microsoft.com/en-us/dotnet/standard/linq/">https://learn.microsoft.com/en-us/dotnet/standard/linq/</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Major <a href="/wiki/Programming_language_implementation" title="Programming language implementation">implementations</a></th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/List_of_CLI_languages" title="List of CLI languages">.NET languages</a> (<a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a>, <a href="/wiki/VB.NET" class="mw-redirect" title="VB.NET">VB.NET</a>)</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/SQL" title="SQL">SQL</a>, <a href="/wiki/Haskell_(programming_language)" class="mw-redirect" title="Haskell (programming language)">Haskell</a></td></tr></tbody></table> <p><b>Language Integrated Query</b> (<b>LINQ</b>, pronounced "link") is a <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> component that adds native data <a href="/wiki/Query_language" title="Query language">querying</a> capabilities to <a href="/wiki/List_of_CLI_languages" title="List of CLI languages">.NET languages</a>, originally released as a major part of <a href="/wiki/.NET_Framework_3.5" class="mw-redirect" title=".NET Framework 3.5">.NET Framework 3.5</a> in 2007. </p><p>LINQ extends the language by the addition of query <a href="/wiki/Expression_(computer_science)" title="Expression (computer science)">expressions</a>, which are akin to <a href="/wiki/SQL" title="SQL">SQL</a> statements, and can be used to conveniently extract and process data from <a href="/wiki/Array_data_structure" class="mw-redirect" title="Array data structure">arrays</a>, enumerable <a href="/wiki/Class_(computer_science)" class="mw-redirect" title="Class (computer science)">classes</a>, <a href="/wiki/XML" title="XML">XML</a> documents, <a href="/wiki/Relational_database" title="Relational database">relational databases</a>, and third-party data sources. Other uses, which utilize query expressions as a general framework for readably composing arbitrary computations, include the construction of event handlers<sup id="cite_ref-reactive_1-0" class="reference"><a href="#cite_note-reactive-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> or <a href="/wiki/Monad_(functional_programming)" title="Monad (functional programming)">monadic</a> <a href="/wiki/Parsing" title="Parsing">parsers</a>.<sup id="cite_ref-parscomb_2-0" class="reference"><a href="#cite_note-parscomb-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> It also defines a set of method names (called <i>standard query operators</i>, or <i>standard sequence operators</i>), along with translation rules used by the compiler to translate query syntax expressions into expressions using <a href="/wiki/Fluent_interface" title="Fluent interface">fluent-style</a> (called method syntax by Microsoft) with these method names, <a href="/wiki/Anonymous_function#C.23_lambda_expressions" title="Anonymous function">lambda expressions</a> and <a href="/wiki/Anonymous_type" title="Anonymous type">anonymous types</a>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Architecture">Architecture</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=1" title="Edit section: Architecture"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Standard_query_operator_API">Standard query operator API</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=2" title="Edit section: Standard query operator API"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In what follows, the descriptions of the operators are based on the application of working with collections. Many of the operators take other functions as arguments. These functions may be supplied in the form of a named method or anonymous function. </p><p>The set of query <a href="/wiki/Operator_(programming)" class="mw-redirect" title="Operator (programming)">operators</a> defined by LINQ is exposed to the user as the Standard Query Operator (SQO) <a href="/wiki/API" title="API">API</a>. The query operators supported by the API are:<sup id="cite_ref-sqo_3-0" class="reference"><a href="#cite_note-sqo-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p> <dl><dt>Select</dt> <dd></dd> <dd>The Select operator performs a <a href="/wiki/Projection_(database)" class="mw-redirect" title="Projection (database)">projection</a> on the collection to select interesting aspects of the elements. The user supplies an arbitrary function, in the form of a named or <a href="/wiki/Anonymous_function" title="Anonymous function">lambda expression</a>, which projects the data members. The function is passed to the operator as a <a href="/wiki/Delegate_(CLI)" title="Delegate (CLI)">delegate</a>. This implements the <a href="/wiki/Map_(higher-order_function)" title="Map (higher-order function)">Map</a> higher-order function.</dd> <dt>Where</dt> <dd></dd> <dd>The Where operator allows the definition of a set of predicate rules that are evaluated for each object in the collection, while objects that do not match the rule are filtered away. The predicate is supplied to the operator as a delegate. This implements the <a href="/wiki/Filter_(higher-order_function)" title="Filter (higher-order function)">Filter</a> higher-order function.</dd> <dt>SelectMany</dt> <dd></dd> <dd>For a user-provided mapping from collection elements to collections, semantically two steps are performed. First, every element is mapped to its corresponding collection. Second, the result of the first step is flattened by one level. Select and Where are both implementable in terms of SelectMany, as long as singleton and empty collections are available. The translation rules mentioned above still make it mandatory for a LINQ provider to provide the other two operators. This implements the <a href="/wiki/Bind_(higher-order_function)" class="mw-redirect" title="Bind (higher-order function)">bind</a> higher-order function.</dd> <dt>Sum / Min / Max / Average</dt> <dd></dd></dl> <p>These operators optionally take a function that retrieves a certain numeric value from each element in the collection and uses it to find the sum, minimum, maximum or average values of all the elements in the collection, respectively. Overloaded versions take no function and act as if the identity is given as the lambda. </p> <dl><dt>Aggregate</dt> <dd></dd></dl> <p>A generalized Sum / Min / Max. This operator takes a function that specifies how two values are combined to form an intermediate or the final result. Optionally, a starting value can be supplied, enabling the result type of the aggregation to be arbitrary. Furthermore, a finalization function, taking the aggregation result to yet another value, can be supplied. This implement the <a href="/wiki/Fold_(higher-order_function)" title="Fold (higher-order function)">Fold</a> higher-order function. </p> <dl><dt>Join / GroupJoin</dt> <dd>The Join operator performs an <a href="/wiki/Inner_join" class="mw-redirect" title="Inner join">inner join</a> on two collections, based on matching keys for objects in each collection. It takes two functions as delegates, one for each collection, that it executes on each object in the collection to extract the key from the object. It also takes another delegate in which the user specifies which data elements, from the two matched elements, should be used to create the resultant object. The GroupJoin operator performs a <a href="/wiki/Group_join" class="mw-redirect" title="Group join">group join</a>. Like the Select operator, the results of a join are instantiations of a different class, with all the data members of both the types of the source objects, or a subset of them.</dd> <dt>Take / TakeWhile</dt> <dd>The Take operator selects the first n objects from a collection, while the TakeWhile operator, which takes a predicate, selects those objects that match the predicate (stopping at the first object that doesn't match it).</dd> <dt>Skip / SkipWhile</dt> <dd>The Skip and SkipWhile operators are complements of Take and TakeWhile - they skip the first n objects from a collection, or those objects that match a predicate (for the case of SkipWhile).</dd> <dt>OfType</dt> <dd>The OfType operator is used to select the elements of a certain type.</dd> <dt>Concat</dt> <dd>The Concat operator <a href="/wiki/Concatenation" title="Concatenation">concatenates</a> two collections.</dd> <dt>OrderBy / ThenBy</dt> <dd>The OrderBy operator is used to specify the primary sort ordering of the elements in a collection according to some key. The default ordering is in ascending order, to reverse the order, the <b>OrderByDescending</b> operator is to be used. ThenBy and <b>ThenByDescending</b> specifies subsequent ordering of the elements. The function to extract the key value from the object is specified by the user as a delegate.</dd> <dt>Reverse</dt> <dd>The Reverse operator reverses a collection.</dd> <dt>GroupBy</dt> <dd>The GroupBy operator takes a function that extracts a key value and returns a collection of <code>IGrouping<Key, Values></code> objects, for each distinct key value. The <code>IGrouping</code> objects can then be used to enumerate all the objects for a particular key value.</dd> <dt>Distinct</dt> <dd>The Distinct operator removes duplicate instances of an object from a collection. An overload of the operator takes an equality comparer object which defines the criteria for distinctness.</dd> <dt>Union / Intersect / Except</dt> <dd>These operators are used to perform a <a href="/wiki/Union_(set_theory)" title="Union (set theory)">union</a>, <a href="/wiki/Intersection_(set_theory)" title="Intersection (set theory)">intersection</a> and <a href="/wiki/Complement_(set_theory)" title="Complement (set theory)">difference</a> operation on two sequences, respectively. Each has an overload which takes an equality comparer object which defines the criteria for element equality.</dd> <dt>SequenceEqual</dt> <dd>The SequenceEqual operator determines whether all elements in two collections are equal and in the same order.</dd> <dt>First / FirstOrDefault / Last / LastOrDefault</dt> <dd>These operators take a predicate. The First operator returns the first element for which the predicate yields true, or, if nothing matches, throws an exception. The FirstOrDefault operator is like the First operator except that it returns the default value for the element type (usually a null reference) in case nothing matches the predicate. The last operator retrieves the last element to match the predicate, or throws an exception in case nothing matches. The LastOrDefault returns the default element value if nothing matches.</dd> <dt>Single</dt> <dd>The Single operator takes a predicate and returns the element that matches the predicate. An exception is thrown, if none or more than one element match the predicate.</dd> <dt>SingleOrDefault</dt> <dd>The SingleOrDefault operator takes a predicate and return the element that matches the predicate. If more than one element matches the predicate, an exception is thrown. If no element matches the predicate, a default value is returned.</dd> <dt>ElementAt</dt> <dd>The ElementAt operator retrieves the element at a given index in the collection.</dd> <dt>Any / All</dt> <dd>The Any operator checks, if there are any elements in the collection matching the predicate. It does not select the element, but returns true if at least one element is matched. An invocation of any without a predicate returns true if the collection non-empty. The All operator returns true if all elements match the predicate.</dd> <dt>Contains</dt> <dd>The Contains operator checks, if the collection contains a given element.</dd> <dt>Count</dt> <dd>The Count operator counts the number of elements in the given collection. An overload taking a predicate, counts the number of elements matching the predicate.</dd></dl> <p>The standard query operator API also specifies certain operators that convert a collection into another type:<sup id="cite_ref-sqo_3-1" class="reference"><a href="#cite_note-sqo-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p> <ul><li>AsEnumerable: Statically types the collection as an <code>IEnumerable<T></code>.<sup id="cite_ref-Enumerable_Class_4-0" class="reference"><a href="#cite_note-Enumerable_Class-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li> <li>AsQueryable: Statically types the collection as an <code>IQueryable<T></code>.</li> <li>ToArray: Creates an array <code>T[]</code> from the collection.</li> <li>ToList: Creates a <code>List<T></code> from the collection.</li> <li>ToDictionary: Creates a <code>Dictionary<K, T></code> from the collection, indexed by the key K. A user supplied projection function extracts a key from each element.</li> <li>ToLookup: Creates a <code>Lookup<K, T></code> from the collection, indexed by the key K. A user supplied projection function extracts a key from each element.</li> <li>Cast: converts a non-generic <code>IEnumerable</code> collection to one of <code>IEnumerable<T></code> by casting each element to type <code>T</code>. Alternately converts a generic <code>IEnumerable<T></code> to another generic <code>IEnumerable<R></code> by casting each element from type <code>T</code> to type <code>R</code>. Throws an exception in any element cannot be cast to the indicated type.</li> <li>OfType: converts a non-generic <code>IEnumerable</code> collection to one of <code>IEnumerable<T></code>. Alternately converts a generic <code>IEnumerable<T></code> to another generic <code>IEnumerable<R></code> by attempting to cast each element from type <code>T</code> to type <code>R</code>. In both cases, only the subset of elements successfully cast to the target type are included. No exceptions are thrown.</li></ul> <div class="mw-heading mw-heading3"><h3 id="Language_extensions">Language extensions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=3" title="Edit section: Language extensions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>While LINQ is primarily implemented as a <a href="/wiki/Library_(computing)" title="Library (computing)">library</a> for .NET Framework 3.5, it also defines optional language extensions that make queries a first-class <a href="/wiki/Language_construct" title="Language construct">language construct</a> and provide <a href="/wiki/Syntactic_sugar" title="Syntactic sugar">syntactic sugar</a> for writing queries. These language extensions have initially been implemented in <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a> 3.0,<sup id="cite_ref-Skeet_5-0" class="reference"><a href="#cite_note-Skeet-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 75">: 75 </span></sup> <a href="/wiki/VB.NET" class="mw-redirect" title="VB.NET">VB 9.0</a>, <a href="/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a><sup id="cite_ref-linq_6-0" class="reference"><a href="#cite_note-linq-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/Oxygene_(programming_language)" title="Oxygene (programming language)">Oxygene</a>, with other languages like <a href="/wiki/Nemerle" title="Nemerle">Nemerle</a> having announced preliminary support. The language extensions include:<sup id="cite_ref-linq1_7-0" class="reference"><a href="#cite_note-linq1-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p> <ul><li>Query syntax: A language is free to choose a query syntax that it will recognize natively. These language keywords must be translated by the compiler to appropriate LINQ method calls.</li> <li>Implicitly typed variables: This enhancement allows variables to be declared without specifying their types. The languages C# 3.0<sup id="cite_ref-Skeet_5-1" class="reference"><a href="#cite_note-Skeet-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 367">: 367 </span></sup> and Oxygene declare them with the <code>var</code> keyword. In VB9.0, the <code>Dim</code> keyword without type declaration accomplishes the same. Such objects are still <a href="/wiki/Strong_typing" class="mw-redirect" title="Strong typing">strongly typed</a>; for these objects the compiler infers the types of variables via <a href="/wiki/Type_inference" title="Type inference">type inference</a>, which allows the results of the queries to be specified and defined without declaring the type of the intermediate variables.</li> <li><a href="/wiki/Anonymous_type" title="Anonymous type">Anonymous types</a>: Anonymous types allow classes that contain only data-member declarations to be inferred by the compiler. This is useful for the Select and Join operators, whose result types may differ from the types of the original objects. The compiler uses type inference to determine the fields contained in the classes and generates <a href="/wiki/Mutator_method" title="Mutator method">accessors and mutators</a> for these fields.</li> <li><a href="/wiki/Object_initializer" class="mw-redirect" title="Object initializer">Object initializer</a>: Object initializers allow an object to be created and initialized in a single scope, as required for Select and Join operators.</li> <li><a href="/wiki/Anonymous_function" title="Anonymous function">Lambda expressions</a>: Lambda expressions allow predicates and other projection functions to be written inline with a concise syntax, and support full lexical closure. They are captured into parameters as delegates or expression trees depending on the Query Provider.</li></ul> <p>For example, in the query to select all the objects in a collection with <code>SomeProperty</code> less than 10, </p> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">var</span><span class="w"> </span><span class="n">results</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">SomeCollection</span> <span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">c</span><span class="p">.</span><span class="n">SomeProperty</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="m">10</span> <span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="p">{</span><span class="n">c</span><span class="p">.</span><span class="n">SomeProperty</span><span class="p">,</span><span class="w"> </span><span class="n">c</span><span class="p">.</span><span class="n">OtherProperty</span><span class="p">};</span> <span class="k">foreach</span><span class="w"> </span><span class="p">(</span><span class="kt">var</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">results</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="n">result</span><span class="p">);</span> <span class="p">}</span> </pre></div> <p>the types of variables <i>result</i>, <i>c</i> and <i>results</i> all are inferred by the compiler in accordance to the signatures of the methods eventually used. The basis for choosing the methods is formed by the query expression-free translation result </p> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">var</span><span class="w"> </span><span class="n">results</span><span class="w"> </span><span class="o">=</span> <span class="w"> </span><span class="n">SomeCollection</span> <span class="w"> </span><span class="p">.</span><span class="n">Where</span><span class="p">(</span><span class="n">c</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="n">c</span><span class="p">.</span><span class="n">SomeProperty</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="m">10</span><span class="p">)</span> <span class="w"> </span><span class="p">.</span><span class="n">Select</span><span class="p">(</span><span class="n">c</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="p">{</span><span class="n">c</span><span class="p">.</span><span class="n">SomeProperty</span><span class="p">,</span><span class="w"> </span><span class="n">c</span><span class="p">.</span><span class="n">OtherProperty</span><span class="p">});</span> <span class="n">results</span><span class="p">.</span><span class="n">ForEach</span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span><span class="n">Console</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="n">x</span><span class="p">.</span><span class="n">ToString</span><span class="p">());})</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="LINQ_providers">LINQ providers</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=4" title="Edit section: LINQ providers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The C#3.0 specification defines a Query Expression Pattern along with translation rules from a LINQ expression to an expression in a subset of C# 3.0 without LINQ expressions. The translation thus defined is actually un-typed, which, in addition to lambda expressions being interpretable as either delegates or expression trees, allows for a great degree of flexibility for libraries wishing to expose parts of their interface as LINQ expression clauses. For example, <b>LINQ to Objects</b> works on <code>IEnumerable<T></code>s and with delegates, whereas <b>LINQ to SQL</b> makes use of the expression trees. </p><p>The expression trees are at the core of the LINQ extensibility mechanism, by which LINQ can be adapted for many data sources. The expression trees are handed over to LINQ Providers, which are data source-specific implementations that adapt the LINQ queries to be used with the data source. If they choose so, the LINQ Providers analyze the expression trees contained in a query in order to generate essential pieces needed for the execution of a query. This can be SQL fragments or any other completely different representation of code as further manipulatable data. LINQ comes with LINQ Providers for in-memory object collections, <a href="/wiki/Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> databases, <a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a> datasets and XML documents. These different providers define the different flavors of LINQ: </p> <div class="mw-heading mw-heading4"><h4 id="LINQ_to_Objects">LINQ to Objects</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=5" title="Edit section: LINQ to Objects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The LINQ to Objects provider is used for in-memory collections, using the local query execution engine of LINQ. The code generated by this provider refers to the implementation of the standard query operators as defined on the <code>Sequence</code> pattern and allows <code>IEnumerable<T></code> collections to be queried locally. Current implementation of LINQ to Objects perform interface implementation checks to allow for fast membership tests, counts, and indexed lookup operations when they are supported by the runtime type of the IEnumerable.<sup id="cite_ref-Enumerable.ElementAt_8-0" class="reference"><a href="#cite_note-Enumerable.ElementAt-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Enumerable.Contains_9-0" class="reference"><a href="#cite_note-Enumerable.Contains-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Enumerable.Count_10-0" class="reference"><a href="#cite_note-Enumerable.Count-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="LINQ_to_XML_(formerly_called_XLINQ)"><span id="LINQ_to_XML_.28formerly_called_XLINQ.29"></span>LINQ to XML (formerly called XLINQ)</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=6" title="Edit section: LINQ to XML (formerly called XLINQ)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The LINQ to XML provider converts an XML document to a collection of <code>XElement</code> objects, which are then queried against using the local execution engine that is provided as a part of the implementation of the standard query operator.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="LINQ_to_SQL_(formerly_called_DLINQ)"><span id="LINQ_to_SQL_.28formerly_called_DLINQ.29"></span>LINQ to SQL (formerly called DLINQ)</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=7" title="Edit section: LINQ to SQL (formerly called DLINQ)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The LINQ to SQL provider allows LINQ to be used to query <a href="/wiki/Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> databases, including <a href="/wiki/SQL_Server_Compact" title="SQL Server Compact">SQL Server Compact</a> databases. Since SQL Server data may reside on a remote server, and because SQL Server has its own query engine, LINQ to SQL does not use the query engine of LINQ. Instead, it converts a LINQ query to a <a href="/wiki/SQL" title="SQL">SQL</a> query that is then sent to SQL Server for processing.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> However, since SQL Server stores the data as <a href="/wiki/Relational_database" title="Relational database">relational data</a> and LINQ works with data encapsulated in objects, the two representations must be <a href="/wiki/Object-Relational_mapping" class="mw-redirect" title="Object-Relational mapping">mapped</a> to one another. For this reason, LINQ to SQL also defines a mapping framework. The mapping is done by defining classes that correspond to the tables in the database, and containing all or a subset of the columns in the table as data members.<sup id="cite_ref-ltos_13-0" class="reference"><a href="#cite_note-ltos-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> The correspondence, along with other <a href="/wiki/Relational_model" title="Relational model">relational model</a> attributes such as <a href="/wiki/Primary_key" title="Primary key">primary keys</a>, are specified using LINQ to SQL-defined <a href="/wiki/Attribute_(computing)" title="Attribute (computing)">attributes</a>. For example, </p> <div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span></span><span class="na">[Table(Name="Customers")]</span> <span class="k">public</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Customer</span> <span class="p">{</span> <span class="w"> </span><span class="na">[Column(IsPrimaryKey = true)]</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">CustID</span><span class="p">;</span> <span class="w"> </span><span class="na">[Column]</span> <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="n">CustName</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p>This class definition maps to a table named <code>Customers</code> and the two data members correspond to two columns. The classes must be defined before LINQ to SQL can be used. <a href="/wiki/Visual_Studio_2008" class="mw-redirect" title="Visual Studio 2008">Visual Studio 2008</a> includes a mapping designer that can be used to create the mapping between the data schemas in the object as well as the relational domain. It can automatically create the corresponding classes from a <a href="/wiki/Database_schema" title="Database schema">database schema</a>, as well as allow manual editing to create a different view by using only a subset of the tables or columns in a table.<sup id="cite_ref-ltos_13-1" class="reference"><a href="#cite_note-ltos-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p><p>The mapping is implemented by the <code>DataContext</code> that takes a connection string to the server, and can be used to generate a <code>Table<T></code> where T is the type to which the database table will be mapped. The <code>Table<T></code> encapsulates the data in the table, and implements the <code>IQueryable<T></code> interface, so that the expression tree is created, which the LINQ to SQL provider handles. It converts the query into <a href="/wiki/T-SQL" class="mw-redirect" title="T-SQL">T-SQL</a> and retrieves the result set from the database server. Since the processing happens at the database server, local methods, which are not defined as a part of the lambda expressions representing the predicates, cannot be used. However, it can use the <a href="/wiki/Stored_procedure" title="Stored procedure">stored procedures</a> on the server. Any changes to the result set are tracked and can be submitted back to the database server.<sup id="cite_ref-ltos_13-2" class="reference"><a href="#cite_note-ltos-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="LINQ_to_DataSets">LINQ to DataSets</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=8" title="Edit section: LINQ to DataSets"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Since the LINQ to SQL provider (above) works only with <a href="/wiki/Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a> databases, in order to support any generic database, LINQ also includes the LINQ to DataSets. It uses ADO.NET to handle the communication with the database. Once the data is in ADO.NET Datasets, LINQ to DataSets execute queries against these datasets.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Performance">Performance</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=9" title="Edit section: Performance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-Update plainlinks metadata ambox ambox-content ambox-Update" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/9/98/Ambox_current_red.svg/42px-Ambox_current_red.svg.png" decoding="async" width="42" height="34" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/98/Ambox_current_red.svg/63px-Ambox_current_red.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/98/Ambox_current_red.svg/84px-Ambox_current_red.svg.png 2x" data-file-width="360" data-file-height="290" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">Parts of this article (those related to Performance) need to be <b>updated</b>. The reason given is: The source is old and now performs better than before.<span class="hide-when-compact"> Please help update this article to reflect recent events or newly available information.</span> <span class="date-container"><i>(<span class="date">November 2021</span>)</i></span></div></td></tr></tbody></table> <p>Non-professional users may struggle with subtleties in the <b>LINQ to Objects</b> features and syntax. Naive LINQ implementation patterns can lead to a catastrophic degradation of performance.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p><p><b>LINQ to XML</b> and <b>LINQ to SQL</b> performance compared to ADO.NET depends on the use case.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="PLINQ">PLINQ</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=10" title="Edit section: PLINQ"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Version 4 of the .NET framework includes <a href="/wiki/Parallel_Extensions" title="Parallel Extensions">PLINQ</a>, or <i>Parallel LINQ</i>, a <a href="/wiki/Parallel_computing" title="Parallel computing">parallel</a> execution engine for LINQ queries. It defines the <code>ParallelQuery<T></code> class. Any implementation of the <code>IEnumerable<T></code> interface can take advantage of the PLINQ engine by calling the <code class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" style="" dir="ltr"><span class="n">AsParallel</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">(</span><span class="k">this</span><span class="w"> </span><span class="n">IEnumerable</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">)</span></code> extension method defined by the ParallelEnumerable class in the System.Linq namespace of the .NET framework.<sup id="cite_ref-ParallelEnumerable_19-0" class="reference"><a href="#cite_note-ParallelEnumerable-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> The PLINQ engine can execute parts of a query concurrently on multiple threads, providing faster results.<sup id="cite_ref-channel9_20-0" class="reference"><a href="#cite_note-channel9-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Predecessor_languages">Predecessor languages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=11" title="Edit section: Predecessor languages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Many of the concepts that LINQ introduced were originally tested in Microsoft's <b>Cω</b> research project, formerly known by the <a href="/wiki/Codename" class="mw-redirect" title="Codename">codenames</a> <b>X#</b> (X Sharp) and <b>Xen</b>. It was renamed to Cω after <b>Polyphonic C#</b> (another research language based on <a href="/wiki/Join_calculus" class="mw-redirect" title="Join calculus">join calculus</a> principles) was integrated into it. </p><p>Cω attempts to make datastores (such as <a href="/wiki/Databases" class="mw-redirect" title="Databases">databases</a> and <a href="/wiki/XML" title="XML">XML</a> documents) accessible with the same ease and <a href="/wiki/Type_safety" title="Type safety">type safety</a> as traditional types like <a href="/wiki/String_(computer_science)" title="String (computer science)">strings</a> and <a href="/wiki/Array_data_type" class="mw-redirect" title="Array data type">arrays</a>. Many of these ideas were inherited from an earlier incubation project within the WebData XML team called X# and Xen. Cω also includes new constructs to support <a href="/wiki/Concurrent_programming" class="mw-redirect" title="Concurrent programming">concurrent programming</a>; these features were largely derived from the earlier Polyphonic C# project.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> </p><p>First available in 2004 as a compiler preview, Cω's features were subsequently used by Microsoft in the creation of the LINQ features released in 2007 in .NET version 3.5<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> The concurrency constructs have also been released in a slightly modified form as a library, named <a href="/wiki/Joins_(concurrency_library)" title="Joins (concurrency library)"><i>Joins Concurrency Library</i></a>, for <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a> and other .NET languages by <a href="/wiki/Microsoft_Research" title="Microsoft Research">Microsoft Research</a>.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Ports">Ports</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=12" title="Edit section: Ports"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Ports of LINQ exist for <a href="/wiki/PHP" title="PHP">PHP</a> (<a rel="nofollow" class="external text" href="https://phplinq.codeplex.com/">PHPLinq</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180119124921/https://phplinq.codeplex.com/">Archived</a> 2018-01-19 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>), <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> (<a rel="nofollow" class="external text" href="https://github.com/mihaifm/linq">linq.js</a>), <a href="/wiki/TypeScript" title="TypeScript">TypeScript</a> (<a rel="nofollow" class="external text" href="https://github.com/kutyel/linq.ts">linq.ts</a>), and <a href="/wiki/ActionScript" title="ActionScript">ActionScript</a> (<a rel="nofollow" class="external text" href="http://actionlinq.riaforge.org/">ActionLinq</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181225143803/http://actionlinq.riaforge.org/">Archived</a> 2018-12-25 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>), although none are strictly equivalent to LINQ in the .NET inspired languages C#, F# and VB.NET (where it is a part of the language, not an external library, and where it often addresses a wider range of needs).<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (October 2018)">citation needed</span></a></i>]</sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=13" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">Object-relational mapping</a> (ORM)</li> <li><a href="/wiki/Object-relational_impedance_mismatch" class="mw-redirect" title="Object-relational impedance mismatch">Object-relational impedance mismatch</a></li> <li><a href="/wiki/List_comprehension" title="List comprehension">List comprehension</a></li> <li><a href="/wiki/Lazy_evaluation" title="Lazy evaluation">Lazy evaluation</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=14" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width reflist-columns-2"> <ol class="references"> <li id="cite_note-reactive-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-reactive_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx">"Rx framework"</a>. 10 June 2011.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Rx+framework&rft.date=2011-06-10&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Fdevlabs%2Fee794896.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-parscomb-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-parscomb_2-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blogs.msdn.com/lukeh/archive/2007/08/19/monadic-parser-combinators-using-c-3-0.aspx">"Monadic Parser Combinators using C#3"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2009-11-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Monadic+Parser+Combinators+using+C%233&rft_id=http%3A%2F%2Fblogs.msdn.com%2Flukeh%2Farchive%2F2007%2F08%2F19%2Fmonadic-parser-combinators-using-c-3-0.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-sqo-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-sqo_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sqo_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://download.microsoft.com/download/5/8/6/5868081c-68aa-40de-9a45-a3803d8134b8/standard_query_operators.doc">"Standard Query Operators"</a>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Standard+Query+Operators&rft.pub=Microsoft&rft_id=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F5%2F8%2F6%2F5868081c-68aa-40de-9a45-a3803d8134b8%2Fstandard_query_operators.doc&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-Enumerable_Class-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-Enumerable_Class_4-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/system.linq.enumerable(v=vs.110).aspx">"Enumerable Class"</a>. <i>msdn</i>. Microsoft<span class="reference-accessdate">. Retrieved <span class="nowrap">15 February</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=msdn&rft.atitle=Enumerable+Class&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fsystem.linq.enumerable%28v%3Dvs.110%29.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-Skeet-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-Skeet_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Skeet_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSkeet2019" class="citation book cs1">Skeet, Jon (23 March 2019). <i>C# in Depth</i>. Manning. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1617294532" title="Special:BookSources/978-1617294532"><bdi>978-1617294532</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=C%23+in+Depth&rft.pub=Manning&rft.date=2019-03-23&rft.isbn=978-1617294532&rft.aulast=Skeet&rft.aufirst=Jon&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-linq-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-linq_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-gb/dotnet/fsharp/language-reference/query-expressions">"Query Expressions (F#)"</a>. <i>Microsoft Docs</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2012-12-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Microsoft+Docs&rft.atitle=Query+Expressions+%28F%23%29&rft_id=https%3A%2F%2Fdocs.microsoft.com%2Fen-gb%2Fdotnet%2Ffsharp%2Flanguage-reference%2Fquery-expressions&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-linq1-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-linq1_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/bb397921.aspx">"LINQ Framework"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LINQ+Framework&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb397921.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-Enumerable.ElementAt-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Enumerable.ElementAt_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/bb299233.aspx">"Enumerable.ElementAt"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-05-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Enumerable.ElementAt&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb299233.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-Enumerable.Contains-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-Enumerable.Contains_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/bb352880.aspx">"Enumerable.Contains"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-05-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Enumerable.Contains&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb352880.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-Enumerable.Count-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-Enumerable.Count_10-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/bb338038.aspx">"Enumerable.Count"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-05-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Enumerable.Count&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fbb338038.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn2.microsoft.com/hi-in/library/bb308960(en-us).aspx">".NET Language-Integrated Query for XML Data"</a>. 30 April 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=.NET+Language-Integrated+Query+for+XML+Data&rft.date=2007-04-30&rft_id=http%3A%2F%2Fmsdn2.microsoft.com%2Fhi-in%2Flibrary%2Fbb308960%28en-us%29.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.today/20130125231336/http://www.hookedonlinq.com/LINQtoSQL5MinuteOverview.ashx">"LINQ to SQL"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.hookedonlinq.com/LINQtoSQL5MinuteOverview.ashx">the original</a> on 2013-01-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LINQ+to+SQL&rft_id=http%3A%2F%2Fwww.hookedonlinq.com%2FLINQtoSQL5MinuteOverview.ashx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-ltos-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-ltos_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-ltos_13-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-ltos_13-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn2.microsoft.com/hi-in/library/bb425822.aspx">"LINQ to SQL: .NET Language-Integrated Query for Relational Data"</a>. 30 April 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LINQ+to+SQL%3A+.NET+Language-Integrated+Query+for+Relational+Data&rft.date=2007-04-30&rft_id=http%3A%2F%2Fmsdn2.microsoft.com%2Fhi-in%2Flibrary%2Fbb425822.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.today/20130125171110/http://www.hookedonlinq.com/LINQtoDatasets.ashx">"LINQ to DataSets"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.hookedonlinq.com/LINQtoDatasets.ashx">the original</a> on 2013-01-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-11-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LINQ+to+DataSets&rft_id=http%3A%2F%2Fwww.hookedonlinq.com%2FLINQtoDatasets.ashx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVider2007" class="citation web cs1">Vider, Guy (2007-12-21). <a rel="nofollow" class="external text" href="http://www.codeproject.com/KB/dotnet/LINQ_Performance_Test.aspx">"LINQ Performance Test: My First Visual Studio 2008 Project"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2009-02-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=LINQ+Performance+Test%3A+My+First+Visual+Studio+2008+Project&rft.date=2007-12-21&rft.aulast=Vider&rft.aufirst=Guy&rft_id=http%3A%2F%2Fwww.codeproject.com%2FKB%2Fdotnet%2FLINQ_Performance_Test.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFParsons2008" class="citation web cs1">Parsons, Jared (2008). <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/magazine/cc721610.aspx">"Increase LINQ Query Performance"</a>. <a href="/wiki/Microsoft_Developer_Network" title="Microsoft Developer Network">Microsoft Developer Network</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-03-19</span></span>. <q><i>While it is true that LINQ is powerful and very efficient, large sets of data can still cause unexpected performance problems</i></q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Increase+LINQ+Query+Performance&rft.pub=Microsoft+Developer+Network&rft.date=2008&rft.aulast=Parsons&rft.aufirst=Jared&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Fmagazine%2Fcc721610.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAlva2010" class="citation web cs1">Alva, Jaime (2010-08-06). <a rel="nofollow" class="external text" href="http://blogs.msdn.com/b/appfabriccat/archive/2010/08/06/potential-performance-issues-with-compiled-linq-query-re-compiles.aspx?">"Potential Performance Issues with Compiled LINQ Query Re-Compiles"</a>. <a href="/wiki/Microsoft_Developer_Network" title="Microsoft Developer Network">Microsoft Developer Network</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-03-19</span></span>. <q><i>When calling a query multiple times with Entity Framework the recommended approach is to use compiled LINQ queries. Compiling a query results in a performance hit the first time you use the query but subsequent calls execute much faster</i></q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Potential+Performance+Issues+with+Compiled+LINQ+Query+Re-Compiles&rft.pub=Microsoft+Developer+Network&rft.date=2010-08-06&rft.aulast=Alva&rft.aufirst=Jaime&rft_id=http%3A%2F%2Fblogs.msdn.com%2Fb%2Fappfabriccat%2Farchive%2F2010%2F08%2F06%2Fpotential-performance-issues-with-compiled-linq-query-re-compiles.aspx%3F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKshitij2008" class="citation web cs1">Kshitij, Pandey (2008-05-25). <a rel="nofollow" class="external text" href="http://www.codeproject.com/KB/dotnet/LinQ_Performance_net3_5.aspx">"Performance comparisons LinQ to SQL, ADO, C#"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2009-02-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Performance+comparisons+LinQ+to+SQL%2C+ADO%2C+C%23&rft.date=2008-05-25&rft.aulast=Kshitij&rft.aufirst=Pandey&rft_id=http%3A%2F%2Fwww.codeproject.com%2FKB%2Fdotnet%2FLinQ_Performance_net3_5.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-ParallelEnumerable-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-ParallelEnumerable_19-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/dd413602(v=vs.110).aspx">"ParallelEnumerable Class"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2014-05-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ParallelEnumerable+Class&rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fdd413602%28v%3Dvs.110%29.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-channel9-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-channel9_20-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://channel9.msdn.com/Showpost.aspx?postid=347531">"Programming in the Age of Concurrency: Concurrent Programming with PFX"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-10-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Programming+in+the+Age+of+Concurrency%3A+Concurrent+Programming+with+PFX&rft_id=http%3A%2F%2Fchannel9.msdn.com%2FShowpost.aspx%3Fpostid%3D347531&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFEichertWooleyMarguerie2008" class="citation book cs1">Eichert, Steve; Wooley, James B.; Marguerie, Fabrice (2008). <i>LINQ in Action</i>. Manning. pp. 56–57 (as reported in the Google Books search link - the book does not have page numbers). <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9781638354628" title="Special:BookSources/9781638354628"><bdi>9781638354628</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=LINQ+in+Action&rft.pages=56-57+%28as+reported+in+the+Google+Books+search+link+-+the+book+does+not+have+page+numbers%29&rft.pub=Manning&rft.date=2008&rft.isbn=9781638354628&rft.aulast=Eichert&rft.aufirst=Steve&rft.au=Wooley%2C+James+B.&rft.au=Marguerie%2C+Fabrice&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://tomasp.net/articles/csharp3-concepts.aspx">Concepts behind the C# 3.0 language | Articles | TomasP.Net</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070212035001/http://tomasp.net/articles/csharp3-concepts.aspx">Archived</a> 2007-02-12 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://research.microsoft.com/research/pubs/view.aspx?type=inproceedings&id=2005">"The Joins Concurrency Library"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-06-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Joins+Concurrency+Library&rft_id=http%3A%2F%2Fresearch.microsoft.com%2Fresearch%2Fpubs%2Fview.aspx%3Ftype%3Dinproceedings%26id%3D2005&rfr_id=info%3Asid%2Fen.wikipedia.org%3ALanguage+Integrated+Query" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Language_Integrated_Query&action=edit&section=15" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1237033735">@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}</style><div class="side-box side-box-right plainlinks sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-flex"> <div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Wikibooks-logo-en-noslogan.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/40px-Wikibooks-logo-en-noslogan.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/60px-Wikibooks-logo-en-noslogan.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/df/Wikibooks-logo-en-noslogan.svg/80px-Wikibooks-logo-en-noslogan.svg.png 2x" data-file-width="400" data-file-height="400" /></a></span></div> <div class="side-box-text plainlist">Wikibooks has a book on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/.NET_Development_Foundation" class="extiw" title="wikibooks:.NET Development Foundation">.NET Development Foundation</a></b></i></div></div> </div> <ul><li><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/netframework/aa904594.aspx">Official Microsoft LINQ Project</a></li> <li><a rel="nofollow" class="external text" href="http://www.developerfusion.com/article/8250/linq-to-objects-for-the-net-developer/">LINQ to Objects for the .NET developer</a></li> <li><a rel="nofollow" class="external text" href="https://social.msdn.microsoft.com/Forums/en-US/b0ed008e-b4f6-47f6-8b43-9838b94f5ced/what-is-the-future-of-linq-to-sql-as-of-2016?forum=linqtosql">Future of LINQ to SQL</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200721231257/https://social.msdn.microsoft.com/Forums/en-US/b0ed008e-b4f6-47f6-8b43-9838b94f5ced/what-is-the-future-of-linq-to-sql-as-of-2016?forum=linqtosql">Archived</a> 2020-07-21 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://www.codeproject.com/Articles/383749/How-does-it-work-in-Csharp-Part-3-Csharp-LINQ-in-d">How does it work in C#? - Part 3 (C# LINQ in detail)</a></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby=".NET630" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:.NET_Framework" title="Template:.NET Framework"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:.NET_Framework" title="Template talk:.NET Framework"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:.NET_Framework" title="Special:EditPage/Template:.NET Framework"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id=".NET630" style="font-size:114%;margin:0 4em"><a href="/wiki/.NET" title=".NET">.NET</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><a href="/wiki/Microsoft_.NET_strategy" title="Microsoft .NET strategy">.NET strategy</a></li> <li><a href="/wiki/List_of_.NET_libraries_and_frameworks" title="List of .NET libraries and frameworks">Libraries and frameworks</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET" title=".NET">.NET</a> (Core)</li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> <ul><li><a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">Version history</a></li></ul></li> <li><a href="/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li> <li><a href="/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li> <li><a href="/wiki/DotGNU" title="DotGNU">DotGNU</a></li> <li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></li> <li><a href="/wiki/XNA_Framework" class="mw-redirect" title="XNA Framework">XNA Framework</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_architecture" title="Software architecture">Architecture</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR)</li> <li><a href="/wiki/COM_Interop" title="COM Interop">COM Interop</a></li> <li><a href="/wiki/Framework_Class_Library" title="Framework Class Library">Framework Class Library</a> (FCL)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Software_component" title="Software component">Components</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ADO.NET" title="ADO.NET">ADO.NET</a> <ul><li><a href="/wiki/Entity_Framework" title="Entity Framework">Entity Framework</a></li></ul></li> <li><a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> <ul><li><a href="/wiki/ASP.NET_Web_Forms" title="ASP.NET Web Forms">Web Forms</a></li> <li><a href="/wiki/ASP.NET_AJAX" title="ASP.NET AJAX">AJAX</a></li> <li><a href="/wiki/ASP.NET_Core" title="ASP.NET Core">Core</a></li> <li><a href="/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">Dynamic Data</a></li> <li><a href="/wiki/ASP.NET_MVC" title="ASP.NET MVC">MVC</a></li> <li><a href="/wiki/ASP.NET_Razor" title="ASP.NET Razor">Razor</a></li></ul></li> <li><a href="/wiki/Avalonia_(software_framework)" title="Avalonia (software framework)">Avalonia</a></li> <li><a href="/wiki/ClickOnce" title="ClickOnce">ClickOnce</a></li> <li><a href="/wiki/Dynamic_Language_Runtime" title="Dynamic Language Runtime">Dynamic Language Runtime</a></li> <li><a href="/wiki/Extensible_Application_Markup_Language" title="Extensible Application Markup Language">Extensible Application Markup Language</a> (XAML)</li> <li><a class="mw-selflink selflink">Language Integrated Query</a> (LINQ)</li> <li><a href="/wiki/Managed_Extensibility_Framework" title="Managed Extensibility Framework">Managed Extensibility Framework</a></li> <li><a href="/wiki/Microsoft_Silverlight" title="Microsoft Silverlight">Microsoft Silverlight</a></li> <li><a href="/wiki/Microsoft_XNA" title="Microsoft XNA">Microsoft XNA</a></li> <li><a href="/wiki/Parallel_Extensions" title="Parallel Extensions">Parallel Extensions</a></li> <li><a href="/wiki/Windows_Communication_Foundation" title="Windows Communication Foundation">Windows Communication Foundation</a> (WCF) <ul><li><a href="/wiki/WCF_Data_Services" title="WCF Data Services">WCF Data Services</a></li></ul></li> <li><a href="/wiki/Windows_Forms" title="Windows Forms">Windows Forms</a> (WinForms)</li> <li><a href="/wiki/Windows_Identity_Foundation" title="Windows Identity Foundation">Windows Identity Foundation</a> (WIF)</li> <li><a href="/wiki/Windows_Presentation_Foundation" title="Windows Presentation Foundation">Windows Presentation Foundation</a> (WPF)</li> <li><a href="/wiki/Windows_Workflow_Foundation" title="Windows Workflow Foundation">Windows Workflow Foundation</a> (WF)</li> <li><a href="/wiki/.NET_Remoting" title=".NET Remoting">.NET Remoting</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_tool" title="Programming tool">Tools</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Decompiler" title="Decompiler">Decompilers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Reflector" title=".NET Reflector">.NET Reflector</a></li> <li><a href="/wiki/JetBrains" title="JetBrains">dotPeek</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Obfuscation_(software)" title="Obfuscation (software)">Obfuscators</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Dotfuscator" title="Dotfuscator">Dotfuscator</a></li> <li><a href="/wiki/Redgate" title="Redgate">SmartAssembly</a></li></ul> </div></td></tr><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CLR_Profiler" title="CLR Profiler">CLR Profiler</a></li> <li><a href="/wiki/ILAsm" title="ILAsm">ILAsm</a></li> <li><a href="/wiki/.NET_Compiler_Platform" class="mw-redirect" title=".NET Compiler Platform">.NET Compiler Platform</a></li> <li><a href="/wiki/Native_Image_Generator" title="Native Image Generator">Native Image Generator</a> (NGen)</li> <li><a href="/wiki/XAMLPad" class="mw-redirect" title="XAMLPad">XAMLPad</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDEs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_Visual_Studio" class="mw-redirect" title="Microsoft Visual Studio">Visual Studio</a> <ul><li><a href="/wiki/Microsoft_Blend" title="Microsoft Blend">Blend</a></li> <li><a href="/wiki/Microsoft_Visual_Studio_Express" title="Microsoft Visual Studio Express">Express</a></li></ul></li> <li><a href="/wiki/MonoDevelop" title="MonoDevelop">MonoDevelop</a></li> <li><a href="/wiki/SharpDevelop" title="SharpDevelop">SharpDevelop</a></li> <li><a href="/wiki/Xamarin_Studio" class="mw-redirect" title="Xamarin Studio">Xamarin Studio</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET_Foundation" title=".NET Foundation">.NET Foundation</a></li> <li><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></li> <li><a href="/wiki/Xamarin" title="Xamarin">Xamarin</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:.NET" title="Category:.NET">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/.NET_Framework_version_history" title=".NET Framework version history">List</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <a href="https://commons.wikimedia.org/wiki/Category:.NET" class="extiw" title="commons:Category:.NET">Commons</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox" aria-labelledby="Query_languages54" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Query_languages" title="Template:Query languages"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Query_languages" title="Template talk:Query languages"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Query_languages" title="Special:EditPage/Template:Query languages"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Query_languages54" style="font-size:114%;margin:0 4em"><a href="/wiki/Query_language" title="Query language">Query languages</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">In current use</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.QL" title=".QL">.QL</a></li> <li><a href="/wiki/Alpha_(programming_language)" title="Alpha (programming language)">ALPHA</a></li> <li><a href="/wiki/Contextual_Query_Language" title="Contextual Query Language">CQL</a></li> <li><a href="/wiki/Cypher_(query_language)" title="Cypher (query language)">Cypher</a></li> <li><a href="/wiki/Data_Analysis_Expressions" title="Data Analysis Expressions">DAX</a></li> <li><a href="/wiki/Data_Mining_Extensions" title="Data Mining Extensions">DMX</a></li> <li><a href="/wiki/Datalog" title="Datalog">Datalog</a></li> <li><a href="/wiki/GraphQL" title="GraphQL">GraphQL</a></li> <li><a href="/wiki/Graph_Query_Language" title="Graph Query Language">Graph Query Language</a></li> <li><a href="/wiki/Gremlin_(query_language)" title="Gremlin (query language)">Gremlin</a></li> <li><a href="/wiki/ISBL" title="ISBL">ISBL</a></li> <li><a href="/wiki/Lightweight_Directory_Access_Protocol" title="Lightweight Directory Access Protocol">LDAP</a></li> <li><a class="mw-selflink selflink">LINQ</a></li> <li><a href="/wiki/Molecular_Query_Language" title="Molecular Query Language">MQL</a></li> <li><a href="/wiki/MultiDimensional_eXpressions" title="MultiDimensional eXpressions">MDX</a></li> <li><a href="/wiki/Object_Query_Language" title="Object Query Language">OQL</a></li> <li><a href="/wiki/Object_Constraint_Language" title="Object Constraint Language">OCL</a></li> <li><a href="/wiki/QUEL_query_languages" title="QUEL query languages">QUEL</a></li> <li><a href="/wiki/RDF_query_language" title="RDF query language">RDF</a></li> <li><a href="/wiki/SMILES_arbitrary_target_specification" title="SMILES arbitrary target specification">SMARTS</a></li> <li><a href="/wiki/SPARQL" title="SPARQL">SPARQL</a></li> <li><a href="/wiki/SQL" title="SQL">SQL</a></li> <li><a href="/wiki/XQuery" title="XQuery">XQuery</a></li> <li><a href="/wiki/XPath" title="XPath">XPath</a></li> <li><a href="/wiki/Yahoo!_Query_Language" class="mw-redirect" title="Yahoo! Query Language">YQL</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Proprietary</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Yahoo!_query_language" class="mw-redirect" title="Yahoo! query language">YQL</a></li> <li><a class="mw-selflink selflink">LINQ</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Superseded</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CODASYL" title="CODASYL">CODASYL</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐65b64b4b74‐mw5np Cached time: 20250219125408 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.579 seconds Real time usage: 0.757 seconds Preprocessor visited node count: 2962/1000000 Post‐expand include size: 103361/2097152 bytes Template argument size: 11538/2097152 bytes Highest expansion depth: 16/100 Expensive parser function count: 13/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 106685/5000000 bytes Lua time usage: 0.352/10.000 seconds Lua memory usage: 7847043/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 652.661 1 -total 28.06% 183.120 1 Template:Reflist 22.24% 145.159 20 Template:Cite_web 15.76% 102.842 3 Template:Navbox 15.54% 101.425 1 Template:.NET_Framework 13.99% 91.310 1 Template:Short_description 12.77% 83.371 1 Template:Multiple_issues 9.72% 63.419 2 Template:Pagetype 9.69% 63.265 3 Template:Ambox 6.33% 41.283 1 Template:How-to --> <!-- Saved in parser cache with key enwiki:pcache:13706337:|#|:idhash:canonical and timestamp 20250219125408 and revision id 1273617935. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Language_Integrated_Query&oldid=1273617935#Predecessor_languages">https://en.wikipedia.org/w/index.php?title=Language_Integrated_Query&oldid=1273617935#Predecessor_languages</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:.NET_terminology" title="Category:.NET terminology">.NET terminology</a></li><li><a href="/wiki/Category:Query_languages" title="Category:Query languages">Query languages</a></li><li><a href="/wiki/Category:XML_data_access" title="Category:XML data access">XML data access</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Articles_needing_cleanup_from_September_2024" title="Category:Articles needing cleanup from September 2024">Articles needing cleanup from September 2024</a></li><li><a href="/wiki/Category:All_pages_needing_cleanup" title="Category:All pages needing cleanup">All pages needing cleanup</a></li><li><a href="/wiki/Category:Articles_containing_how-to_sections" title="Category:Articles containing how-to sections">Articles containing how-to sections</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_September_2024" title="Category:Articles needing additional references from September 2024">Articles needing additional references from September 2024</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:Articles_with_multiple_maintenance_issues" title="Category:Articles with multiple maintenance issues">Articles with multiple maintenance issues</a></li><li><a href="/wiki/Category:Wikipedia_articles_in_need_of_updating_from_November_2021" title="Category:Wikipedia articles in need of updating from November 2021">Wikipedia articles in need of updating from November 2021</a></li><li><a href="/wiki/Category:All_Wikipedia_articles_in_need_of_updating" title="Category:All Wikipedia articles in need of updating">All Wikipedia articles in need of updating</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_October_2018" title="Category:Articles with unsourced statements from October 2018">Articles with unsourced statements from October 2018</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 3 February 2025, at 06:11<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Language_Integrated_Query&mobileaction=toggle_view_mobile#Predecessor_languages" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" lang="en" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Language Integrated Query</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>23 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-558fc7fc45-th26g","wgBackendResponseTime":247,"wgPageParseReport":{"limitreport":{"cputime":"0.579","walltime":"0.757","ppvisitednodes":{"value":2962,"limit":1000000},"postexpandincludesize":{"value":103361,"limit":2097152},"templateargumentsize":{"value":11538,"limit":2097152},"expansiondepth":{"value":16,"limit":100},"expensivefunctioncount":{"value":13,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":106685,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 652.661 1 -total"," 28.06% 183.120 1 Template:Reflist"," 22.24% 145.159 20 Template:Cite_web"," 15.76% 102.842 3 Template:Navbox"," 15.54% 101.425 1 Template:.NET_Framework"," 13.99% 91.310 1 Template:Short_description"," 12.77% 83.371 1 Template:Multiple_issues"," 9.72% 63.419 2 Template:Pagetype"," 9.69% 63.265 3 Template:Ambox"," 6.33% 41.283 1 Template:How-to"]},"scribunto":{"limitreport-timeusage":{"value":"0.352","limit":"10.000"},"limitreport-memusage":{"value":7847043,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-65b64b4b74-mw5np","timestamp":"20250219125408","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Language Integrated Query","url":"https:\/\/en.wikipedia.org\/wiki\/Language_Integrated_Query#Predecessor_languages","sameAs":"http:\/\/www.wikidata.org\/entity\/Q595637","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q595637","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2005-10-19T05:33:07Z","dateModified":"2025-02-03T06:11:38Z","headline":"feature of several .NET programming languages that provides syntactic sugar for data querying"}</script> </body> </html>