Tuesday, October 11, 2005

LINQ

LINQ ย่อจาก Language INtegrated Query
เป็น feature หนึ่งใน .net version ใหม่

The LINQ Project is a codename for a set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations. It extends C# and Visual Basic with native language syntax for queries and provides class libraries to take advantage of these capabilities.


ดูตัวอย่าง snippet ของการใช้ LINQ
using System;
using System.Query;
using Danielfe;

class Program
{
static void Main(string[] args)
{
string[] aBunchOfWords = {"One","Two", "Hello",
"World", "Four", "Five"};

var result =
from s in aBunchOfWords // query the string array
where s.Length == 5 // for all words with length = 5
select s; // and return the string

//PrintToConsole is an Extension method that prints the value
result.Print();
}
}


integrate ได้เนียนดีมาก
ลองมาดู java บ้าง
ถ้าต้องการ feature แบบนี้ เราต้องใช้ JoSQL เข้ามาช่วย
public static void main(String[] args) throws 
QueryParseException,
QueryExecutionException {
List list = new ArrayList();
list.add("one");
list.add("two");
list.add("Hello");
list.add("world");
list.add("four");
list.add("five");

Query q = new Query();
q.parse("select * from java.lang.String " +
"where length = 5 ");
QueryResults qr = q.execute(list);
List results = qr.getResults();
for (Iterator iter = results.iterator(); iter.hasNext();) {
String tmp = (String) iter.next();
System.out.println(tmp);
}
}

เนื่องจากเป็นแค่ api ก็เลยดูไม่เนียนตาเท่า LINQ ที่เป็น language extension

Related link from Roti

No comments: