String sql = "SELECT * FROM \"table\""; ArrayList resultList = db.SelectQuery(sql); var query = from String p in resultList where int.Parse(p.split(';')[0]) > 10 //假設[0] 是ID(integer) select p; foreach(String p in query) MessageBox.show(p);
過往foreach寫法
List<Member> query = new List<Member>(); //例子1 搜尋Age 大於10 foreach(Member item in memberList){ if(item.Age > 10){ query.Add(item); } } //例子2 搜尋特定關鍵字 foreach(var item in memberList){ if(item.Name.ToUpper() == "SUN"){ query.Add(item); } } //例子3 搜尋包括特定關鍵字 並由Age小至大排序 foreach(Member item in memberList){ if(item.Age > 10 && item.Name.ToUpper().IndexOf("SUN") >= 0){ query.Add(item); } } query.Sort(CompareMember); int CompareMember(Member a, Member b){ return a.Age - b.Age; }
LINQ的寫法
//例子1 搜尋Age 大於10 var query = form data in memberList //指定資料來源 where data.Age > 10 //條件 select data; //查詢結果 foreach(var item in query){ //TODO } //例子2 搜尋特定關鍵字 var query = form data in memberList //指定資料來源 where data.Name.ToUpper() == "SUN" //條件 select data; //查詢結果 foreach(var item in query){ //TODO } //例子3 搜尋包括特定關鍵字 並由Age小至大排序 var query = form data in memberList where item.Age > 10 && data.Name.ToUpper().IndexOf("SUN") >= 0 orderby data.Age select data; foreach(var item in query){ //TODO }