統合言語クエリ

統合言語クエリ (Language INtegrated Query; LINQ, リンクと発音する) とは、.NET Framework 3.5において、様々な種類のデータ集合に対して標準化された方法でデータを問い合わせること(クエリ)を可能にするために、言語に統合された機能のことである。開発ツールはVisual Studio 2008から対応している。

統合言語問合せという表記も見られる[1]:43

C#による例を示す。このコードでは、fruitsの中から"m"で始まるものを取り出し、それをretに格納し、それをforeach文で順に出力している(実際にはret遅延評価される)。

using System;
using System.Linq; // LINQ拡張メソッドの利用に必要。メソッド構文ではなくクエリ構文を使用する場合でも必要となる。

public class Test
{
  public static void Main()
  {
    string[] fruits =
    {
      "apple",
      "cherry",
      "melon",
      "orange",
      "marron",
      "mango",
    };
    // クエリ構文
    Console.WriteLine("Query Syntax");
    {
      // fromからselectまでの一連の式がLINQクエリ式である。
      var ret = from x in fruits
                where !string.IsNullOrEmpty(x) && x[0] == 'm'
                select x;
      foreach (var e in ret)
      {
        Console.WriteLine(e);
      }
    }
    // メソッド構文
    Console.WriteLine("Method Syntax");
    {
      // オブジェクトをフィルタリングする条件(述語)を、ラムダ式で指定する。
      var ret = fruits.Where(x => !string.IsNullOrEmpty(x) && x[0] == 'm');
      foreach (var e in ret)
      {
        Console.WriteLine(e);
      }
    }
  }
}

言語仕様

LINQに対応する言語は、LINQを自然に導入するための新しい言語仕様が併せて追加されている。代表的な例を以下に示す。

クエリ式
SQLのような問い合わせ言語風の文法が取り入れられた。これはメソッド構文の構文糖となっている。
拡張メソッド
同様のデータ構造に対して後から操作を追加するために取り入れられた。例えば、LINQ to Objectの場合はIEnumerableインターフェイスの拡張メソッドとして標準クエリ演算子を含むメソッド群が追加された。
ラムダ式
従来の匿名メソッドに取って代わる構文として導入された。引数の型が省略できることや、式木に変換することができることで、自然にLINQを導入できるようにした。
匿名型
クエリの結果や途中の値を一時的な値の組合せで保持できるよう導入された。クエリ結果の格納を意図しているため、匿名型の各値は読み取り専用プロパティとなっている。

C#における仕様の詳細はC# 3.0からの仕様を参照されたい。

標準クエリ演算子

主な標準クエリ演算子を挙げる。

制限演算子

  • Whereは、指定した述語をもとに要素のフィルタ処理を行う。高階関数filterに相当する。

プロジェクション演算子

  • Selectは、指定した評価関数をもとに要素のプロジェクションを行う。高階関数mapに相当する。
  • SelectManyは、指定した評価関数をもとに1対多のプロジェクションを行う。

結合演算子

  • Joinは指定したキーセレクタをもとに等価結合を行う。
  • GroupJoinは指定したキーセレクタをもとにグループ化結合を行う。

順序付け演算子

  • OrderBy,ThenByは指定したキーセレクタをもとに結果の順序を指定する。

グループ化演算子

  • GroupByは指定したキーセレクタをもとにグループ化を行う。

集計演算子

  • Aggregateは、指定した累積関数をもとにシーケンスの集計を行う。高階関数foldに相当する。


データソース

LINQはサードパーティーによるものを含め、あらゆる種類のデータソースに対して適用することができる。これは、標準クエリ演算子に対応する機能を拡張メソッドとしてデータソースに追加することで実現している。

従来では同種のデータ型やオブジェクトの集合に対して列挙やソート、フィルタを効率的に扱うために配列 (Arrayクラス) やコレクションオブジェクトが用いられた。一方、データベースXML上のデータ集合はADO.NETによってデータセットとして取り扱われており異なる操作が必要であった。LINQによって、これらのオブジェクトやデータセットを区別せず共通的に扱うことが可能となった。

例えば、マイクロソフトによるものでは次のような実装がある。

  • LINQ to Objects (あらゆるコレクション/列挙子をLINQクエリで操作可能にする)
  • LINQ to XML (XLinq)
  • LINQ to ADO.NET
    • LINQ to SQL (DLinq / SQL Server専用)
    • LINQ to Entities (SQL Server / Oracle Database / MySQL / SQLite等)
    • LINQ to DataSet (DataSetに対する拡張メソッドにより、LINQクエリを記述可能とする)
  • Azure Table Storage (Windows AzureのキーバリューストアでLINQクエリを記述可能とする)

サードパーティー製データソースとしては、以下が挙げられる。

LINQに対応する言語

次の言語がLINQに対応する。

  • C# 3.0 以降
  • F# 1.1.8.1 以降
  • Visual Basic 9.0 以降
  • Delphi Prism 2009 (Oxygene)

C++/CLIはLINQに対応する予定はなく、従来通りの構文でLINQ関係のライブラリを使用できるのみである。

その他の言語での実装

LINQは、LINQの思想に感化された人々により、マイクロソフト系のプログラミング言語にとどまらず、さまざまなプログラミング言語向けの実装が行われている。

注釈

出典

参考文献

外部リンク

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2022. Anna ApostolakiLahirΆννα Αποστολάκη1880 (1880)Margarites, Rethymno, di pulau Kreta, YunaniMeninggal1958 – 1880; umur -79–-78 tahunKebangsaanGreekPendidikanPhilosophical SchoolAlmamaterUniversitas AthenaDikenal atasTe...

 

Royal Jet IATA ICAO Kode panggil - ROJ ROYALJET Didirikan2003PenghubungBandar Udara Internasional Abu DhabiPenghubung sekunderBandar Udara Internasional DubaiBandar Udara Internasional King AbdulazizArmada11Perusahaan indukAbu Dhabi Aviation (50%), Amiri Flight (50%)Kantor pusatAbu Dhabi, Uni Emirat ArabSitus webhttp://www.royaljetgroup.com Royal Jet adalah maskapai penerbangan yang berbasis di Abu Dhabi, Uni Emirat Arab. Maskapai penerbangan ini adalah operator sewaan yang ditujukan untuk pa...

 

Topics related toEdgar Allan Poe In popular culture In music In television and film Dark Romanticism Edgar Awards Death Bibliography vteLiterary award for work in the crime genre The Edgar Allan Poe Awards, popularly called the Edgars, are presented every year by the Mystery Writers of America,[1] based in New York City.[2] Named after American writer Edgar Allan Poe (1809–1849), a pioneer in the genre, the awards honor the best in mystery fiction, non-fiction, television, f...

Borough in Estonia This article is about the small borough in Rapla Parish, Rapla County. For other places with the same name, see Kuusiku (disambiguation). Small borough in Rapla County, EstoniaKuusikuSmall boroughMain building of Kuusiku ManorKuusikuLocation in EstoniaCoordinates: 58°58′20″N 24°43′44″E / 58.97222°N 24.72889°E / 58.97222; 24.72889Country EstoniaCounty Rapla CountyMunicipality Rapla ParishPopulation • Total250 Kuusiku is a ...

 

Type of explosive armsThis article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (November 2023) (Learn how and when to remove this template message) A B28 nuclear bomb being transported to a United States Air Force F-100 Super Sabre at Kadena Air Base in Japan Nuclear weapons Background Nuclear explosion History Warfare Design Testing Delivery Yield Effects Winter Worke...

 

Commune in Centre, HaitiThomassique TomasikCommuneThomassiqueLocation in HaitiCoordinates: 19°5′0″N 71°50′0″W / 19.08333°N 71.83333°W / 19.08333; -71.83333Country HaitiDepartmentCentreArrondissementCerca-la-SourceElevation299 m (981 ft)Population (7 August 2003)[1] • Total42,557 Thomassique (French pronunciation: [tɔmasik]; Haitian Creole: Tomasik) is a commune in the Cerca-la-Source Arrondissement, in the Centre ...

Image Statue name Location Date Sculptor Source Allies, Churchill and Roosevelt New Bond Street, London, England Lawrence Holofcener Franklin Delano Roosevelt Rapid City, South Dakota 5th Street & Main Street Edward E Hlavka [1] Franklin Delano Roosevelt Grosvenor Square, London, England 1947 William Reid Dick [2] Franklin Delano Roosevelt Kelvingrove Museum, Glasgow, Scotland 1946 William Reid Dick [3] Franklin Delano Roosevelt Memorial Washington, D.C. Franklin ...

 

Ukrainian service of the BBC BBC News УкраїнаBBC News UkraineTypeRadio network and websiteCountryUnited KingdomAvailabilityInternationalEndowmentForeign and Commonwealth Office, UKOwnerBBCKey peopleMaciek Bernatt-Reschynskyy (Head of Service)[1]Launch date1992Official websitewww.bbc.com/ukrainian BBC News Ukrainian (Ukrainian: BBC News Україна) is the Ukrainian service of BBC News which conveys the latest political, social, economical and sport news relevant to Ukraine a...

 

Basilika Santo QuentinBasilika Minor Santo Quentinbahasa Prancis: Basilique Saint-Quentin de Saint-QuentinBasilika Santo QuentinLokasiSaint-QuentinNegara PrancisDenominasiGereja Katolik RomaArsitekturStatusBasilika minorStatus fungsionalAktif Basilika Santo Quentin (bahasa Prancis: Basilique Saint-Quentin de Saint-Quentin) adalah sebuah gereja basilika minor Katolik yang terletak di Saint-Quentin, Prancis. Basilika ini ditetapkan statusnya pada 1876 dan didedikasikan kepada Santo...

Cet article est une ébauche concernant l’art et une chronologie ou une date. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Chronologies Données clés 1627 1628 1629  1630  1631 1632 1633Décennies :1600 1610 1620  1630  1640 1650 1660Siècles :XVe XVIe  XVIIe  XVIIIe XIXeMillénaires :-Ier Ier  IIe  IIIe Chronologies thématiques Art Architecture, Arts...

 

Moribund Kuliak language spoken in Uganda SooTepesRegionUgandaEthnicity5,000 (2007)[1]Native speakers50 (2012)[1]Language familyNilo-Saharan? KuliakNyang'i–SooSooDialects Tepes Kadam Napak Language codesISO 639-3teuGlottologsooo1256ELPSoo Soo or So is the Kuliak language of the Tepes people of northeastern Uganda. The language is moribund, with most of the population of 5,000 having shifted to Karamojong, and only a few dozen elderly individuals are still able to speak ...

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

عبد الرحمن الخازني معلومات شخصية الميلاد 1115مإيران  تاريخ الوفاة 1155م مواطنة الدولة السلجوقية  الحياة العملية أعمال اختراع الآلات العلمية، والساعة المائية مشرف الدكتوراه عمر الخيام  تعلم لدى عمر الخيام،  والمظفر الاسفزاري  المهنة عالم مسلم مجال العمل الفلسفة...

 

Diplomatic missions of India   Countries that host an Indian embassy or high commission   Countries that do not host Indian missions   Republic of India The Republic of India has one of the largest diplomatic networks, reflecting its links in the world and particularly in neighbouring regions: Central Asia, the Middle East, East Africa, Europe, Southeast Asia, and the rest of the Indian subcontinent. There are also far-flung missions in the Caribbean and the Pac...

 

Questa voce sull'argomento biologi giapponesi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Susumu Tonegawa Premio Nobel per la medicina 1987 Susumu Tonegawa (Nagoya, 6 settembre 1939) è un biologo giapponese, Premio Nobel per la medicina nel 1987. Indice 1 Biografia 2 Attività scientifica 3 Onorificenze 4 Altri progetti 5 Collegamenti esterni Biografia Laureatosi all'Università di Kyoto, si trasferì negli Stati Uniti per specializzarsi nell...

Questa voce o sezione sull'argomento mineralogia non cita le fonti necessarie o quelle presenti sono insufficienti. Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento. SodanitroClassificazione StrunzV/A.01 Formula chimicaNaNO3 Proprietà cristallograficheSistema cristallinotrigonale Classe di simmetriaesagonale scalenoedrica Parametri di cellaa = 5.07, c = 16.829 Gruppo punt...

 

  لمعانٍ أخرى، طالع ويل روجرز (توضيح). ويل روجرز (بالإنجليزية: Will Rogers)‏  معلومات شخصية الميلاد 4 نوفمبر 1879(1879-11-04)أولوغا الوفاة 15 أغسطس 1935 (55 سنة)نقطة بارو  سبب الوفاة حادث طيران  مكان الدفن متنزه فورست لاون التذكاري  مواطنة الولايات المتحدة[1]  الأب كليمنت...

 

Greek footballer Nikos Liberopoulos Liberopoulos in 2012Personal informationFull name Nikolaos LiberopoulosDate of birth (1975-08-04) 4 August 1975 (age 48)Place of birth Filiatra, GreeceHeight 1.87 m (6 ft 2 in)Position(s) Forward, attacking midfielderSenior career*Years Team Apps (Gls)1991–1993 Erani Filiatra 53 (33)1993–1996 Kalamata 78 (20)1996–2003 Panathinaikos 185 (72)2003–2008 AEK Athens 142 (66)2008–2010 Eintracht Frankfurt 50 (10)2010–2012 AEK Athens ...

The Coat of Arms of Paraguay The culture of Paraguay reflects the Spanish and indigenous influences of the country. Paraguay's cultural heritage can be traced to the extensive intermarriage between the original male Spanish settlers and indigenous Guaraní women. Their culture is highly influenced by various European countries, including Spain. Therefore, Paraguayan culture is a fusion of two cultures and traditions; one European, the other, Southern Guaraní. More than 93% of Paraguayans ar...

 

О сериале см. статью 7 самураев. Семь самураевяп. 七人の侍 Жанры дзидайгэки, тямбара Режиссёр Акира Куросава Продюсер Содзиро Мотоки Авторысценария Акира КуросаваСинобу ХасимотоХидэо Огуни В главныхролях Такаси СимураТосиро МифунэДайскэ КатоМинору Тиаки Оператор Аса...