C# – LINQ 簡易使用教學

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
}

開始在上面輸入您的搜索詞,然後按回車進行搜索。按ESC取消。

返回頂部