Linq支持主要的查询:
1、对象集合(IEnumerable或者IEnumerable<T>)
2、SQL数据库
3、XML文档
先对对象集合做一个解释:
查询的是集合,包括List<T>,Dictionay<T,K>,HashTable<T>,ArrayList这些集合都继承了IEnumerable接口。
public void Test1() { List<string> names = new List<string>(); Dictionary<string, int> per = new Dictionary<string, int>(); Hashtable ht = new Hashtable(); ArrayList al = new ArrayList(); }
对弱变量类型var简单使用
public void Test2() { string name = "Messi"; int age = 20; Console.WriteLine(name); Console.WriteLine(age); var name1 = "kaka"; var age1 = 18; Console.WriteLine(name1); Console.WriteLine(age1); }
举例使用Linq查询和一般查询的区别:其实Linq查询在很大程度上和数据库的sql语句功能相似,语法也有很多相同的地方
class Demo2 { List<Employ> empArray; List<EmpLevel> empLevelArray; List<Employ> empResult; public Demo2() { empArray = new List<Employ>(); empLevelArray = new List<EmpLevel>(); empResult = new List<Employ>(); //雇员信息初始化 empArray.Add(new Employ(1, "梅西", 32, 10)); empArray.Add(new Employ(2, "内马尔", 27, 8)); empArray.Add(new Employ(3, "卡瓦尼", 32, 5)); empArray.Add(new Employ(4, "德布劳内", 32, 6)); empArray.Add(new Employ(5, "马内", 32, 2)); empArray.Add(new Employ(6, "卡卡", 32, 9)); //雇员等级初始化 empLevelArray.Add(new EmpLevel(1,1,"一级实习",3000)); empLevelArray.Add(new EmpLevel(2, 2, "二级见习", 5000)); empLevelArray.Add(new EmpLevel(3, 3, "三级菜鸟", 8000)); empLevelArray.Add(new EmpLevel(4, 3, "四级新手", 10000)); empLevelArray.Add(new EmpLevel(5, 4, "五级员工", 30000)); empLevelArray.Add(new EmpLevel(6, 5, "六级老手", 50000)); } /// <summary> /// 一般查询方法 /// </summary> public void Test1() { foreach (Employ item in empArray) { if (item.LevelNum > 5) empResult.Add(item); } foreach (Employ item in empResult) { Console.WriteLine(item); } } /// <summary> /// Linq查询方法 /// </summary> public void Test2() { var result = from e in empArray where e.LevelNum>6 select e.Name; foreach (var item in result) { Console.WriteLine(item); } } static void Main(string[] args) { Demo2 obj = new Demo2(); obj.Test2(); } }