Linq的使用场景简介和认识

一:C#的一个分支Linq

二:学Linq需要有一些基础知识

1. var 隐式类型

2. 匿名类型/匿名方法 

3. 自动属性

4. 委托/泛型的委托

5. lambda

6. 扩展方法

7. 对象初始化器  (匿名对象)

8. IEnumerable/yield/GetEnumerator


三:linq的作用的是什么 【大一统】

什么叫大一统: 就比如 linq中包含了对象查询,数据查询,xml查询等, 都包含在一起。

1. linq 【对象查询,数据查询,xml查询, xxx】

2. linq 其实就是使用扩展方法的lambda表达式。

四:linq to object

1. 原来 VS 现在

《1》 定义一个类

《2》 初始化了一个List集合。

《3》 foreach循环遍历。

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //找到str中包含“A”的字符串,然后已大写字符串和字符串长度的形式转存出来。
            //{Word="AS",Length=2},{Word="SPA",Length=3}
            //最原始的方式
            var strs = new string[] { "is", "as", "spa" };
            List<Word> words = new List<Word>();
            foreach (var str in strs)
            {
                var upper = str.ToUpper();
                if (upper.Contains("A"))
                {
                    words.Add(new Word() { Str = upper, Length = upper.Length });
                }
            }
            //现在的读取方式
            var query = from str in strs
                        let upper = str.ToUpper()  //定义临时变量
                        where upper.Contains("A")
                        select new { Str=upper, Length=upper.Length };
        }
    }
    class Word
    {
        public string Str { get; set; }
        public int Length { get; set; }
    }
}

 

2. linq to sql/ ado.net entityframework

这两个都是用linq的方式读取/操作数据库。

原来: 我们是写sql代码的形式操作数据库。

表达式树,将lamada用树的形式存储起来,这样就方便将lambda表达式
解析成sql。

3. linq to dataset => datatable

原来:我们操作dataset/datatable 有foeach的形式。

现在:我们就可以用linq的方式了。


4. linq to xml

原来:用xmlwriter和xmlreader的形式来操作xml。

现在:我们用linq中的XDocument和XElement这样两种方式操作xml。

当然,大家一定要知道 linq to xml 其实是对xmlwriter的一种高层封装。


5. linq to xxx

这里的xxx需要自己去实现IQueryable接口。

 

转载于:https://www.cnblogs.com/dragon-L/p/6441728.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值