.net之Linq学习笔记(二)

  1. 转换操作(Projection (Transformation) Operations)
    Select()
    基于转换函数进行获得值。
    例如tt.Select(c=> c.val>1)返回tt集合的每项val是否大于1,如大于1则返回true,否则false。
    用法:
    var items = from r in records select new RAK { Rank = r.Rank, Name = r.Name };
    var names = records.Select(r => r.Name);
    SelectMany()
    根据转换函数得到的值的序列,将其成为一个序列
    用法:
    var selectManyResult = dict.SelectMany(kvp => kvp.Value);
    var names3 = from kvp in dict from r in kvp.Value select r.Name;
    Select()SelectMany()的区别:
var selectResult = dict.Select(kvp => kvp.Value);
    foreach (var c in selectResult) {
        foreach (var r in c) {
            names1.Add(r.Name);
        }
    }
    var selectManyResult = dict.SelectMany(kvp => kvp.Value);
    foreach (var r in selectManyResult) {
        names2.Add(r.Name);
    }
  1. 单元素操作
    ElementAt
    返回集合中特定索引位置的元素
    用法:
    var eAt3 = names.ElementAt(3);
    First
    返回集合中的第一个元素,或者满足条件的第一个元素
    用法:var head = names.First();
    var firstT = names.First(n => n.StartsWith("T"));
    Last
    返回集合最后一个元素,或者满足条件的最后一个元素
    用法:var tail = names.Last();
    var lastT = names.Last(n => n.StartsWith("T"));
    single
    返回集合中唯一一个元素,或者满足条件的唯一一个元素,若超过一个或者没有符合条件的会抛出异常
    用法:
    var singleA = names.Single(n => n.StartsWith("A"));
    还有ElementAtOrDefaultFirstOrDefaultLastOrDefaultSingleOrDefault用法类似,只是它们在没有元素满足条件时会返回默认值,默认值根据元素类型而定,如int返回0。SingleOrDefault在没有或多个元素满足条件会返回默认值,不会报错。

  2. 分割操作
    Skip
    在一个集合中跳到特定位置获取元素
    用法:

    string[] source = { "A1", "A2", "B1", "B2", "C1", "C2" };
    var r3 = source.Skip(2); //B1 B2 C1 C2
    

以上是学习edx中的Data Querying Using LINQ and C#课程的笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值