菜鸟笔记Linq初学 top(2)

今天学习了一下Linq中的Select用法,Select 从字面意思上就不难理解,查询,同sql中的查询一样,只不过sql中Select在前,Linq中select在后,

  Select操作可以细分为很多模试,来应对开发过程中不同的需求

简单形式

简单形式顾名思义就是非常简单的,普通的,好理解的写法   例如:获取表中单个的字段

  这段代码的意思一目了然,获取实体StudentLX中的StuName条件是StuID为10

1 var names = from StudentLX in dt.studentLX
2                    where StudentLX.StuID=10
3                    select StudentLX.StuName;

匿名类型

  匿名类型关键字:VAR

  匿名类型是C#3.0带来的新特性

  var 关键字他可以理解为类型占位符,他不是C#中的数据类型,他类似于JS中的弱数据类型,在编写程序的过程中var会自动匹配你 右边等式赋值,值得数据类型

  他可以匹配任何类型包括数组等类型等。

  

//匹配右等式的数据类型为INT
var it = 123456;
//匹配右等式的数据类型为String
var it ="Hello Whord";
//注意如果VAR已经匹配,则不可改变匹配后的数据类型
var it = 123456;
it="hello";//这样会报错,因为IT已经匹配为int类型变量

匿名类型必须初始化

 

var it=(string)null //将变量IT初始化并将数据类型匹配为string类型
var it= null //这句代码类似于上一局代码,但是只给变量指定了为值并未指定数据类型
var IT={City="Hello"}

编译器会创建一个包含  City 属性 的匿名类,我们可以通过Type来获取属性的名字

  创建一个包含Name,age 属性的匿名类

  

var ss = from StudentLX in dt.StudentLX
            select new{
    
                        StuName=StudentLX.StuName,
                        StuAge = StudentLX.Age
                            }  

需要注意的是,匿名类型不可定义为类成员变量,方法可以返回匿名类型。

static object ST()
{
     var studentget = new{name ="word",age=21};
      return studentget;     
} 

返回容易调用难,

  

//匿名类型的调用
    static void Main(string[] args)
    {
       Object student = StudentGet();
        Console.WriteLine("Name:{0}\nAge:{1}"),
                  student.GetType().GetProPerty("Name").GetValue(student,null)
student.GetType().GetProPerty("Age").GetValue(student,null)
    }        

例子,用匿名类进行绑定

private void Form1_Load(object sender, EventArgs e)
{
      UpdateDate();
}
 
private void UpdateDate()
{
       var student1 = new { Name = "Liu", Age = 14 };
       var student2 = new { Name = "Guan", Age = 12 };
       var student3 = new { Name = "Zhang", Age = 13 };
 
       var students = new List<object> { student1, student2, student3 };
            
       dataGridView1.DataSource = students;
}
原文地址:https://www.cnblogs.com/daimaozidejiamao/p/5508144.html