Trung Tâm Tin H cĐi h c Khoa H c T Nhiên Tp.HCM
H ng D n Th c Hànhướ
LINQ
Kh i: Đi H c và Cao Đng
Năm 2015
H ng d n:ướ
Bài t p th c hành đc chia theo Module ượ
M i Module đc thi t k cho th i l ng là 3 ượ ế ế ượ 6 ti t th c hành t i l p v iế
s h ng d n c a gi ng viên. ướ
Tùy theo s ti t phân b , m i tu n h c có th th c hi n nhi u Module. ế
Sinh viên ph i làm t t c các bài t p trong các Module tu n t ng ng. ươ
Nh ng sinh viên ch a hòan t t ph n bài t p t i l p có trách nhi m t làm ư
ti p t c nhà.ế
Các bài có d u (*) là các bài t p nâng cao dành cho sinh viên khá gi i.
Trung Tâm Tin H cĐi h c Khoa H c T Nhiên Tp.HCM
Truy su t d li u v i LINQ
N i dung ki n th c th c hành: ế
-Th c hành LINQ:
-Hi u đc Generic ượ
-Hi u đc Implicitly Typed Variables ượ
-Hi u đc Anonymous Types ượ
-Hi u đc Extension Methods ượ
-Hi u đc Lambda Expressions ượ
-Hi u đc LinQ to Object ượ
-Hi u đc LinQ to SQL ượ
-Sinh viên có th t i toàn b ví d liên quan t i LINQ t trang chính th ng c a
Microsoft đ tham kh o: http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b
Bài t p 1:
M c đích:
-Hi u đc Generic ượ
-Trong System.Collections.Generic; cung c p r t nhi u class: List, Dictionary,
SortedList, SortedDictionary, LinkedList, HashSet….
-Nh ng đây chúng ta ch quan tâm t i ư List và Dictionary, các class khác sinh viên
ph i có trách nhi m t nghiên c u.
Yêu c u:
-S d ng List đ vi t ch ng trình nh bên d i: ế ươ ư ướ
- 2 -
Trung Tâm Tin H cĐi h c Khoa H c T Nhiên Tp.HCM
-M i l n click “Nh p s ”: S đa s trong TextBox vào Listbox bên trái. ư
-Click “>>” s chuy n t t c các ph n t đang đc ch n trong ListBox bên trái sang ượ
Listbox bên ph i
-Click “<<” s chuy n t t c các ph n t đang đc ch n trong ListBox bên ph i sang ượ
Listbox bên trái
-C i ti n l i ch ng trình: cho phép đa b t k ki u d li u nào vào Listbox (xem hình) ế ươ ư
H ng d n:ướ
-Thi t l p các ListBox có ch đ cho phép ch n nhi u ph n t : SelectionMode là ế ế
MultiSimple ho c MultiExtended.
-Đ List có th ch a b t k ki u d li u nào thì ta dùng List< object>. M i class sinh ra
đu k th a t object, nên khi ta đ object thì nó s có th l u b t k ki u d li u nào. ế ư
Bài t p 2:
M c đích:
-Hi u đc Generic ượ
-Trong System.Collections.Generic; cung c p r t nhi u class: List, Dictionary,
SortedList, SortedDictionary, LinkedList, HashSet….
-Nh ng đây chúng ta ch quan tâm t i ư List và Dictionary, các class khác sinh viên
ph i có trách nhi m t nghiên c u.
Yêu c u:
-S d ng Dictionary đ vi t ch ng trình nh bên d i: ế ươ ư ướ
- 3 -
Trung Tâm Tin H cĐi h c Khoa H c T Nhiên Tp.HCM
-M i l n b m L u: Đa thông tin sinh viên vào Dictionary r i c p nh t lên ListView. N u ư ư ế
mã đã t n t i thì t đng c p nh t, n u mã ch a t n t i thì thêm m i. ế ư
-M i l n click vào t ng ph n t trong ListView thì hi n th thông tin chi ti t c a sinh viên ế
vào ph n Thông tin chi ti t ế
-Nút Xóa: cho phép xóa sinh viên hi n t i
-Chú ý là t t c các thao tác ph i s d ng Dictionary.
-Khi thao tác v i CSDL thì Dictionary là m t class r t h u hi u, c i ti n t c đ x lý. ế
H ng d n:ướ
-T o m t class tên là Sinhvien
-Khai báo Dictionary nh sau: ư
Dictionary<string,sinhvien> dic = new Dictionary<string, sinhvien>();
V i đi s th nh t là key, đi s th 2 là value
-Ta có th đa d li u vào b ng ph ng th c dic.Add(“010203”,sinhvien nào đó) ư ươ
-Đ duy t toàn b các ph n t trong Dictionary có nhi u cách, đây ta th ng dùng: ườ
foreach (KeyValuePair<string, sinhvien> item in dic)
{
sinhvien sv = item.Value;
}
- 4 -
Trung Tâm Tin H cĐi h c Khoa H c T Nhiên Tp.HCM
-Đ l y sinh viên theo đúng mã ta ch c n: dic[“010203”]
-Đ xóa sinh viên ta làm nh sau: dic.Remove(“010203”); ư
Bài t p 3:
M c đích:
-Th c hành và hi u đc ượ Implicitly Typed Variables
Yêu c u:
-Hãy khai báo và gán giá tr b t k cho m t bi n có ki u ế var
var x = 113;
var y = "1/1/2012";
var z = 1.7;
var k = new DateTime(2012, 1, 1);
string msg = "x type="+x.GetType() + "\n"+
"y type = "+y.GetType() + "\n" +
"z type ="+z.GetType() + "\n" +
"k type = " + k.GetType();
MessageBox.Show(msg);
-Hãy th tr ng h p không gán giá tr m c đnh cho bi n có ki u ườ ế var, cho nh n xét
-Hãy th gán giá tr có ki u d li u khác cho bi n đã khai báo ki u ế var, cho nh n xét
-Hãy cho bi t ếvar th ng đc ng d ng trong tr ng h p nào?ườ ượ ườ
-Trong tr ng h p đã bi t chính xác ki u d li u thì có nên khai báo ki u ườ ế var hay
không?
H ng d n:ướ
-var đc .net framework h tr c ch n i suy ki u d li uượ ơ ế
-do đó nó s t đng l y đúng ki u d li u khi ta gán vào cho nó.
-B t k ki u d li u nào, k c ki u object, var cũng t đng n i suy ra đúng ki u d
li u c a nó:
-var s=new sinhvien(); thì s cũng đc n i suy ra là đi t ng sinh viên, do đó ta có ượ ượ
th s đc các Properties, method .. c a sinhvien m t Cách bình th ng. ượ ườ
- 5 -