protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "";
var x = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
// คำสั่ง Linq
var q = from p in x
where p > 10
select p;
foreach (var i in q)
{
Label1.Text += i + "<br>";
}
}
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "";
var x = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
// คำสั่ง Linq
var q = from p in x
where p > 10
orderby p descending // เรียงจากมากไปน้อย
select p;
foreach (var i in q.Take(3)) // เอาแค่ 3 ตัว
{
Label1.Text += i + "<br>";
}
}
นอกจากนี้ผมยังสามารถใช้ lamda function ในการแสดงผลแทน foreach ได้อีกด้วย สำหรับรายละเอียดจะพยายามมาอธิบายต่อในชุดที่ 2 ผลลัพท์ของโปรรแกมต่อไปนี้ เหมือนโปรรแกรมที่ผ่านมานะครับ
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "";
var x = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
// คำสั่ง Linq
var q = from p in x
where p > 10
orderby p descending
select p;
Array.ForEach(q.Take(3).ToArray(), c => Label1.Text += c + "<br>"); // ส่วนนี้แก้ไขครับ
}
สำหรับตัวอย่างสุดท้ายในครั้งนี้ให้เอาไปลองดูนะครับ ผมเปลี่ยนสิ่งที่ได้จากคำสั่ง linq ให้เป็นข้อมูลแบบโครงสร้างนะครับ โดยกลายเป็น array of int 3 ชุดคือ a1, a2 และ a3
Code (C#)
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = "";
var x = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
// คำสั่ง Linq
var q = from p in x
where p > 10
orderby p descending
select new {a1 = p, a2 = p*2, a3 = p*3};
Array.ForEach(q.Take(3).ToArray(), c => Label1.Text += c.a1+" "+c.a2+" "+c.a3 + "<br>");
}