Belajar tentang LINQ [ditutup]

189

Gambaran

Salah satu hal yang banyak saya tanyakan di situs ini adalah LINQ . Pertanyaan yang saya ajukan sangat luas dan beragam dan seringkali tidak memiliki banyak konteks di belakangnya. Jadi dalam upaya untuk mengkonsolidasikan pengetahuan yang saya peroleh di Linq, saya memposting pertanyaan ini dengan tujuan untuk memelihara dan memperbaruinya dengan informasi tambahan saat saya terus belajar tentang LINQ.

Saya juga berharap ini akan terbukti menjadi sumber yang berguna bagi orang lain yang ingin belajar tentang LINQ.

Apa itu LINQ?

Dari MSDN :

Proyek LINQ adalah nama kode untuk satu set ekstensi ke .NET Framework yang mencakup kueri, set, dan transformasi operasi yang terintegrasi dengan bahasa. Itu memperluas C # dan Visual Basic dengan sintaks bahasa asli untuk kueri dan menyediakan perpustakaan kelas untuk mengambil keuntungan dari kemampuan ini.

Ini artinya LINQ menyediakan cara standar untuk menanyakan berbagai sumber data menggunakan sintaksis umum.

Apa rasa LINQ yang ada?

Saat ini ada beberapa penyedia LINQ yang disediakan oleh Microsoft:

  • Linq to Objects yang memungkinkan Anda untuk mengeksekusi query pada objek IEnumerable.
  • Linq to SQL yang memungkinkan Anda untuk mengeksekusi query terhadap database dengan cara yang berorientasi objek.
  • Linq to XML yang memungkinkan Anda untuk melakukan query, memuat, memvalidasi, membuat serial dan memanipulasi dokumen XML.
  • Linq to Entities seperti yang disarankan oleh Andrei
  • Linq ke Dataset

Ada beberapa yang lain, banyak yang terdaftar di sini .

Apa manfaatnya?

  • Cara standar untuk menanyakan beberapa sumber data
  • Kompilasi keamanan waktu dari pertanyaan
  • Cara yang dioptimalkan untuk melakukan operasi berbasis set pada objek memori
  • Kemampuan untuk men-debug kueri

Jadi apa yang bisa saya lakukan dengan LINQ?

Chook menyediakan cara untuk menampilkan file CSV.
Jeff menunjukkan cara menghapus duplikat dari array.
Bob mendapat daftar urutan berbeda dari
Marxat yang dapat didatangkan menunjukkan cara mengurutkan array.
Dana mendapat bantuan menerapkan Quick Sort Menggunakan Linq

Mulai dari mana?

Ringkasan tautan dari pertanyaan GateKiller adalah di bawah ini :
Scott Guthrie memberikan pengantar untuk Linq di blog-nya
. Tinjauan umum LINQ di MSDN

ChrisAnnODell menyarankan untuk memeriksa:

Apa yang saya perlukan untuk menggunakan LINQ?

Linq saat ini tersedia dalam VB.Net 9.0 dan C # 3.0 sehingga Anda akan membutuhkan Visual Studio 2008 atau lebih besar untuk mendapatkan manfaat penuh. (Anda selalu bisa menulis kode di notepad dan kompilasi menggunakan MSBuild)

Ada juga alat bernama LinqBridge yang akan memungkinkan Anda untuk menjalankan permintaan Linq seperti di C # 2.0.

Kiat dan trik menggunakan LINQ

Pertanyaan ini memiliki beberapa cara rumit untuk menggunakan LINQ

lomaxx
sumber
+1 untuk pos yang bagus dan referensi ke blog ScottGu. Ini adalah sumber yang bagus dan tempat saya awalnya belajar LINQ.
Evan Plaice
Hooked On LINQ pergi ke beberapa situs Jepang. Google menerjemahkan pembicaraan tentang rimming dan hal-hal pantat lainnya yang nsfw. : SI tidak dapat mengeditnya karena alasan tertentu.
Shane

Jawaban:

6

Sebutkan LINQ ke Entitas karena ADO.NET Entity Framework akan menjadi modul .NET yang penting.

Andrei Rînea
sumber
4

Dapatkan buku Linq Beraksi itu adalah bacaan yang mudah untuk buku kode dan benar-benar mengajarkan Anda cara menggunakan Linq dan fitur baru. NET 3.5 beberapa bagian keren yang mereka masukkan untuk bahasa.

David Basarab
sumber
4

Beberapa Tip LINQ:

  • Terapkan filter sebelum bergabung untuk meningkatkan kinerja kueri
  • Filter kueri LINQ menggunakan perbandingan referensi objek
  • Terapkan agregat untuk mengosongkan koleksi di LINQ ke kueri SQL
  • Tunda memuat properti di LINQ ke SQL
  • Gunakan fungsi-fungsi bernilai tabel dengan pemuatan cepat yang diaktifkan
  • Masukkan gabungan dalam urutan yang benar dalam kueri LINQ ke Objects
  • Tulis kueri LINQ di dalam satu lingkaran

http://www.aspnetpro.com/articles/2009/04/asp200904zh_f/asp200904zh_f.asp

Konstantin Tarkus
sumber
4

IMHO, manfaat yang diabaikan, tetapi penting, adalah efisiensi pengkodean LINQ, misalnya berapa banyak yang dapat dicapai dengan kode yang sangat sedikit. Saya pribadi menemukan sintaks query yang mudah dibaca dan dipahami.

Matthew Sposato
sumber
3

Saya pikir, jawaban untuk "Apa rasa LINQ ada di sana?" tidak lengkap. Pertama-tama, Anda bisa membuat "rasa" sendiri. Ya, ini adalah tugas lanjutan, tetapi ada banyak implementasi LINQ yang berbeda sekarang.

Berikut adalah daftar penyedia LINQ yang ada (ditambah beberapa sumber daya lain untuk mempelajari LINQ) di blog Charlie Calvert: Tautan ke LINQ .

Dan juga ada serangkaian posting blog yang luar biasa dari Matt Warren tentang cara membuat Penyedia LINQ Anda sendiri: LINQ: Membangun seri penyedia yang dapat di IQueryable

Alexandra Rusina
sumber
2

2 sen saya, Baca bab "11 ekspresi Query dan LINQ to Objects" dan "12 LINQ di luar koleksi" di buku "C # in Depth" untuk memahami cara kerja LINQ.

refactor
sumber
0

Untuk Praktek Linq

Jika Anda ingin latihan di LINQ dengan latihan dan jawaban, sangat mudah diatur dan, menurut saya, mengagumkan:

https://github.com/walkhard/linq-exercises

Unduh dari git, buka di Visual Studio. Tugas Anda adalah membuat tes lulus.

[pengungkapan: saya belajar beberapa linq dari itu dan saya berkontribusi pada proyek jadi ya saya pikir itu cara yang mengagumkan, cepat dan efisien untuk belajar.]

BKSpurgeon
sumber