ใครๆหลายคนคงไม่รู้จัก linq หรืออาจจะแค่เคยได้ยินแต่ไม่ทราบว่ามันคืออะไรและสำคัญยังไง หากท่านเป็นโปรแกรมมั่วสายอื่น
ที่ไม่ใช่สาย MS ท่านคงไม่ต้องเดือดร้อนกกับคำว่า linq แต่ถ้าท่านอยู่กับ MS แล้วคำนี้อาจจะเปลี่ยนให้ท่านตกยุคไปได้
เหมือนดั่งเช่นตอน .net ถือกำเหนิดขึ้น หากที่กล่าวมาแล้วยังไม่ทำให้ท่านสนใจใน linq ขึ้นมาสักนิดแล้วล่ะก็ ท่านอาจจะต้อง
กลับไปดู programmer ที่ยึดติดกับ VB6 เพียงอย่างเดียวว่ามีชีวิตเยี่ยงไร
ผมเชื่อว่าทุกท่านนั้นรู้จักกับ SQL เป็นอย่างดี มากบ้างน้อยบ้างก็ไม่เป็นไรคับ ขอแค่ท่านรู้จัก SQL ท่านก็สามารถรู้จักกับ linq ได้
เช่นกัน แต่เพื่อความสมบูรณ์ของบทความนี้(ซึ่งไม่ค่อยจะมี หุ หุ หุ)จะขอกล่าวถึง SQL ไว้สักหน่อยเพื่อท่านๆที่ไม่ใช่ programmer
ได้เผลอเข้ามาอ่านจะได้เข้าใจด้วย SQL ถ้าจะว่าง่ายๆสั้นแล้วก็คือภาษานึงที่ใช้จัดการ database ไม่ว่าจะเป็น SQL Server , MySQL
หรือแม้แต่ Access ก็ตาม โดยจะจัดการ เพิ่มลบ แก้ไขข้อมูล จัดการ DB ในด้านต่างๆ โดนพื้นฐานแล้ว SQL จะเป็นภาษาที่มีมาตรฐาน
สามารถนำไปใช้กับ DB ต่างๆได้ แต่จะมีคำสั่งบางอย่างและชนิดข้อมูลบางประเภทที่ถูกสร้างขึ้นมาให้ใช้เฉพาะ DB นั้นๆ
ถึงตอนนี้หลายๆท่านคงจะเดาออกว่า linq นั้นต้องเกี่ยวข้องกับ DB แน่ๆแต่มันเกี่ยวข้องกันอย่างไรล่ะ linq นั้นเป็นตัวที่จะจัดการข้อมูล
ต่างๆเหมือนกับ SQL คับ แต่จะมีข้อแตกต่างก็คือ linq นั้น เป็น OO และสามารถจัดการข้อมูลได้ทุกประเภทภายใต้โครงสร้างเดียวกัน
(เค้าว่าอย่างนั้น) โดยตัว linq นั้นสามารถจัดการได้ตั้งแต่ DB,XML,DATA OBECT นั่นหมายความว่าไม่ว่าท่านจะต้องการใช้งาน
ข้อมูลในรูปแบบ database หรือ array ในโปรแกรมก็สามารถใช้ linq จัดการได้โดยใช้ซินแทกเดียวกัน โดยท่านอาจจะใช้ C# 3.0
หรือ VB 9.0 ก็ได้ แต่ไม่ใช่ว่าข้อดีของ linq นั้นจะมีแค่นี้ linq ยังได้แก้ปัญหาน่าปวดหัวของ SQL อีกด้วย
นึกออกหรือไม่เวลาท่านเขียนคำสั่ง SQL แล้วไม่รู้ว่ามัน error กว่าจะรู้ก็ต้องค้นดูว่า error เกิดตรงไหน ยิ่งมีการทำงานซับซ้อน
การระบุปัญหายิ่งต้องใช้เวลาแต่ใน linq นั้นท่านสามารถใช้ความสามารถ intellisense ใน VS ในการเขียน linq ได้อีกด้วย
ข้อดีที่กล่าวมานี้ทำให้ท่านไม่จำเป็นต้องกังวลเกี่ยวกับซินแทกที่แตกต่างกันในการใช้งานข้อมูลมากนัก เพียงแค่ท่านนึกว่าท่าน
ต้องการจะทำอะไรแล้วเขียนมันลงไปเท่านั้น เพราะทุกอย่างจะเป็นหนึ่งเดียวกันในรูปแบบของซินแทกโปรแกรม
ตัวอย่างการใช้งาน linq
การสร้าง table
SQL
<div class='quotetop'>QUOTElinqcreate table People (
Name nvarchar(32) primary key not null,
Age int not null,
CanCode bit not null
)
[/b]
[/b][/quote][Table(Name="People")]
public class Person {
[Column(DbType="nvarchar(32) not null", Id=true)]
public string Name;
[Column]
public int Age;
[Column]
public bool CanCode;
}
[/b]
การใช้งานข้อมูล
<div class='quotetop'>QUOTEผลลัพธ์public void Linq1() {
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var lowNums =
from n in numbers
where n < 5
select n;
Console.WriteLine("Numbers < 5:");
foreach (var x in lowNums) {
Console.WriteLine(x);
}
}
[/b]
[/b][/quote]Numbers < 5:
4
1
3
2
0
[/b]