ASP.NET中linq select的用法
来源:互联网 发布:剑灵捏人灵族数据 编辑:程序博客网 时间:2024/06/08 03:59
Linq中select查询和SQL命令中的select作用相似但位置不同,查询表达式中的select及所接子句是放在表达式最后,并把子句中的变量也就是结果返回回来;分别为简单用法、匿名类型形式、条件形式、指定类型形式、筛选形式、整形类型形式、嵌套类型形式、本地方法调用形式、Distinct形式。
ASP.NET中linq select的综合实例
class Program { private static List <Student> GetStudents() { List <Student> students = new List <Student> { new Student{ Name="YOUNG", Age=25, Language="Chinese"}, new Student{ Name="JESSIE", Age=21, Language="Scotland"}, new Student{ Name="KELLY", Age=18, Language="English"}, new Student{ Name="JUNE", Age=20, Language="English"}, new Student{ Name="ADRIAN", Age=22, Language="Italy"}, new Student{ Name="BRUCE", Age=17, Language="Scotland"}, new Student{ Name="BRANT", Age=30, Language="Germany"}, new Student{ Name="BEN", Age=25, Language="Chinese"} }; return students; } static void Main(string[] args) { List <Student> studentList = GetStudents(); Select(studentList); } private static void Select <T>(T studentList) { OnlySearch(studentList); SearchCollectChangeOtherCollect(studentList); BuilderAnomy(); BuilderAnomyExter(); SelectLambda(); ComplexSelect(); ComplexSelectLambda(); } private static void OnlySearch <T>(T studentList) { Console.WriteLine(" <hr>只查询合适对象集合的某个属性: <br>"); //lamb的写法 var students = RevealChangeType(studentList).Where(n=>n.Language == "Chinese").Select(n=>n.Name); //linq的写法 //var students = from n in RevealChangeType(studentList) // where n.Language == "Chinese" // select n.Name; foreach (var student in students) { Console.WriteLine(string.Format(" <span class='result'>{0} </span>", student)); } } private static IEnumerable <Student> RevealChangeType <T>(T obj) { IEnumerable <Student> student = obj as IEnumerable <Student>; return student; } private static void SearchCollectChangeOtherCollect <T>(T obj) { Console.WriteLine(" <hr>从一个集合中查询,转化到另外一个集合: <br>"); //age Array int[] intArray ={ 25, 1, 4, 3 }; //lamb的写法 var students = intArray.SelectMany(n=>RevealChangeType(obj).Where(s=>s.Age == n)); //linq的写法 //var students = from s in RevealChangeType(obj) // from n in intArray // where s.Age == n // select s; foreach (var student in students) { Console.WriteLine(string.Format(" <span class='result'>{0} </span>", student.Name)); } } private static void BuilderAnomy() { Console.WriteLine(" <hr>构建匿名类型: <br>"); List <Student> studentList = GetStudents(); int[] intArray = { 3, 1, 6, 4 }; //lamb的写法 var stu = intArray.Select(n=>new { Id = n, Name = (studentList as List <Student>)[n].Name }); //linq的写法 //var stu = from n in intArray // select new{Id = n,Name=(studentList as List <Student>)[n].Name}; foreach (var s in stu) { Console.WriteLine(string.Format(" <div class='result'>id:{0};name:{1} </div>", s.Id, s.Name)); } } private static void BuilderAnomyExter() { Console.WriteLine(" <hr>构建匿名类型2——扩展已有类: <br>"); List <Student> studentList = GetStudents(); int[] intArray = { 3, 1, 6, 4 }; //lamb的写法 var students = intArray.Select(n=>new { Id = n, studentList[n].Name, studentList[n].Age }); //linq的写法 //var students = from n in intArray // select new {Id = n, studentList[n].Name, studentList[n].Age}; foreach (var student in students) { Console.WriteLine(string.Format(" <div class='result'>id:{0}; name:{1}; age:{2} </div>", student.Id, student.Name, student.Age)); } } private static void SelectLambda() { Console.WriteLine(" <hr>select的Lambda表达式: <br>"); List <Student> studentList = GetStudents(); int[] intArray = { 3, 1, 6, 4 }; //lamb的写法 var stu = intArray.Select(i=>new { Id = i, studentList[i].Name }); //linq的写法 //var stu = from i in intArray // select new {Id = i, studentList[i].Name}; foreach (var student in stu) { Console.WriteLine(string.Format(" <div class='result'>id:{0}; name:{1} </div>", student.Id, student.Name)); } } private static void ComplexSelect() { Console.WriteLine(" <hr>复合选择: <br>"); List <Student> studentList = GetStudents(); string[] stringArray = { "Ajax", "Csharp", "Javascript", "Css Desige", "Asp.net", "Gis" }; //lamb的写法 //var stu = stringArray.Where(s=>s.Length > 8).SelectMany(s=>studentList.Where(str1=>str1.Age > 23).Select(str=>new { book = s, name = str.Name })); var stu = studentList.Where(sl=>sl.Age > 23).SelectMany(sl=>stringArray.Where(s=>s.Length > 8).Select(s=>new { name = sl.Name, book = s })); //linq的写法 //var stu = from sl in studentList // where sl.Age > 23 // from s in stringArray // where s.Length > 8 // select new {name = sl.Name, book = s}; foreach (var student in stu) { Console.WriteLine(string.Format(" <div class='result'>{0} is studying {1} </div>", student.name, student.book)); } } private static void ComplexSelectLambda() { Console.WriteLine(" <hr>多重选择的Lambda表达式: <br>"); List <Student> studentList = GetStudents(); string[] stringArray = { "Ajax", "Csharp", "Javascript", "Css Desige", "Asp.net", "Gis" }; //lamb的写法 //var stu = studentList.SelectMany(s=>stringArray.Select(str => s.Name + "has a book names " + str)); //linq的写法 var stu = from sl in studentList from s in stringArray select new {name=sl.Name,language=s}; foreach (var s in stu) { Console.WriteLine(string.Format(" <div class='result'>{0} </div>", s)); } } } sealed class Student { public int age; public int Age { get { return age; } set { age = value; } } private string name; public string Name { get { return name; } set { name = value; } } private string language; public string Language { get { return language; } set { language = value; } } }
文章转载自: Linq中select查询 http://www.studyofnet.com/news/270.html
0 0
- ASP.NET中linq select的用法
- asp.net LinQ中GroupBy的用法
- ASP.NET中Linq查询数据的用法
- Asp.Net中Linq的删除操作
- Linq SelectMany和Select的用法
- asp.net MVC中linq to xml的简单操作
- 学习 :ASP.NET中使用LINQ
- 在ASP.NET中使用LINQ
- 初识ASP.NET---ASP.NET中验证控件的用法
- LINQ中Aggregate的用法
- asp.net中Request.ServerVariables的用法
- asp.net 2.0中GetCallbackEventReference的用法
- Asp.net 中ClientID的用法探讨
- ASP.NET中形式的用法
- ASP.NET中$#=的用法
- asp.net中形式的用法
- ASP.NET中$#=的用法
- ASP.NET中Response的基本用法
- 对多元二次函数的理解
- Windows窗口的创建
- Linux_Struct_inode() 结构体详解
- flex 双击事件不起作用
- 2013总结
- ASP.NET中linq select的用法
- utf8判断
- Java Map 集合类简介
- 《对不起,只能把你锁在记忆里》
- ContentObserver与DatasetObserver的用途与区别
- samba服务器配置、任务调度
- 元旦作业 1~6题
- 清理数据库中对应某个字段的所有非法数据的一种解决方案 SQL语句
- 定义与声明的区别