asp.net框架技术第一天

   用了两周的时间做了一个很不完整的网站,有很多功能还来不及完成就结束了。也总算松了一口气了。

   今天开始了asp.net框架技术这本书,书上第一章的内容不是很多,但是老师也不至于一下午就给我们讲三章的内容吧。

 

Asp.net框架技术


*Linq分类

Linq to object 操作内存

Linq to xml 操作xml格式数据 操作硬盘

Linq to sql 操作数据库(ef替代,但是ef支持linq to sql 写法)

 *Linq to object 操作内存


1.Linq实现简单的查询

<span style="color:#3366FF;">        List<string> result = (from animial in list
                                 where animial.Contains(needAnimal)
                                 select animial).ToList();
Linq排序
        List<string> result = (from animial in list
                                   where animial.Contains(needAnimal)
                                   orderby animial descending
                                   select animial).ToList();</span>

2.对象初始化器

<span style="color:#3366FF;"> List<UserInfo> uilist = new List<UserInfo>() {
                new UserInfo() { username = "小红", age = 18, address = "火星" },
                 new UserInfo() { username = "老老头", age = 68, address = "快乐星球" }
            };
Linq进行对象多条件查询
List<UserInfo> result = (from temp in uilist
                                     where (string.IsNullOrEmpty(username) ||temp.username==username) &&
                                           (string.IsNullOrEmpty(address) || temp.address==address)
                                     select temp).ToList();</span>

3.Linq自定义方法验证(

除了满足集合中的年龄等于输入了的年龄,还需要满足年龄在1922

<span style="color:#3366FF;">public static bool MyCheck(int listbefore,int age)
        {
            if (age <= 22 && age >= 19 && listbefore == age)
                return true;
            else
                return false;
}</span>

4.Linq进行对象排序

<span style="color:#3366FF;">List<UserInfo> result = (from temp in uilist
                                     orderby temp.age descending,temp.address ascending 
                                     select temp).ToList();
注意:如果排序多于一个必须先满足第一个排序,如果第一个一样在考虑第二个</span>

5.复合的from子句(查询包涵某些爱好的)

<span style="color:#3366FF;">循环接收条件
List<string> loverlist = new List<string>();
            Console.WriteLine("请输入你想找的爱好");
            while (true)
            {
                string lover = Console.ReadLine();
                if (lover == "Q")
                {
                    break;
                }
                else 
                {
                    loverlist.Add(lover);
                }
}
更具接收到的条件查询
List<UserInfo> reesult = (from temp in uilist
                                      from lover in temp.lover
                                      where loverlist.Contains(lover)
                                      select temp).ToList();</span>

6.Select子句,返回单字段与多字段

<span style="color:#3366FF;">单字段
//返回单字段
            List<string> result = (from temp in uilist
                                     where temp.address == "水星" || temp.address == "火星"
                                      select temp.username)
                                      .ToList();
多字段
            List<UserInfo> reesult = (from temp in uilist
                                    where temp.address == "水星" || temp.address == "火星"
                                    select new UserInfo() { username = temp.username, address = temp.address })
                                   .ToList();</span>

7.Select验证(验证成绩等级)

  select new UserInfo() { username = temp.username, address = (temp.age<18)?"未成年":"成年了"}

8.可空类型

<span style="color:#3366FF;">Nullable<int>
写法2
int?
</span><p><span style="font-family:宋体;color:#3366FF;">如果不查询</span><span style="color:#3366FF;">age<span style="font-family:宋体;">字段默认是</span><span style="font-family:Calibri;">0</span><span style="font-family:宋体;">不太好,就需要使用可空类型</span></span></p>

9.弱类型

var a = 1;
            var b = "cc";
           var c = true;
            Console.WriteLine(a.GetType().Name);
            Console.WriteLine(b.GetType().Name);
            Console.WriteLine(c.GetType().Name);

10.匿名类型

<span style="color:#3366FF;">      //匿名类型
            var mytestobj = new {usernam ="悟空",age=18 };</span>

11.Select自定义函数验证

<span style="color:#3366FF;">public static string AgeType(int? age)
        {
          if (age < 18)
                return "少年";
            else if (age >= 18 && age <= 22)
                return "青年";
           else if (age > 22 && age <= 40)
               return "中年";
            else
                return "无年";
}</span>

12.分部类

<span style="color:#3366FF;">关键字:partial
用的地方:
1:类特别大不适合放到一个地方
2:一部分代码是工具自动生成的,需要单独放到另外一个类里边
3:一个类需要多人合作开发</span>

13.泛型(重点)

<span style="color:#3366FF;">泛型:类型占位符,我在方法或类的时候类型不确定,类型是传的时候确定的
泛型方法:
  //泛型方法
public static T GetT<T>(T v)
{
            return v;
}
  Console.WriteLine(GetT<int>(1));
            Console.WriteLine(GetT<string>("abc"));
            Console.WriteLine(GetT<bool>(true));
            Console.WriteLine(GetT<double>(3.14));
泛型类:
    class MyTest<T>
    {
        public T str;
        public void Set(T _v)
        {
            str = _v;
        }
        public T Get()
        {
            return str;
        }
}
泛型约束:
只能传值类型的约束:
        //泛型方法
        public static T GetT<T>(T v) where T:struct
        {
            return v;
        }
约束必须有一个无参数的构造函数:
     //泛型方法
        public static T GetT<T>(T v) where T:new()
        {
            return v;
        }
约束必须要实现某个接口:
  public static T GetT<T>(T v) where T : IAnimals
        {
            return v;
        }
约束必须要实现某个接口而且他必须要无参构造函数:
   //泛型方法
        public static T GetT<T>(T v) where T : IAnimals,new()
        {
            return v;
        }
</span>


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值