欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » Linq to OBJECT延时标准查询操作符集合 » 正文

Select操作符

创建时间:2014年06月17日 11:20  阅读次数:(1392)
分享到:
Select操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中的元素类型相同,也可以不同。

Select操作符原型有两个,第一个原型定义如下:
public static IEnumerable<TResult > Select<TSource, TResult >(this IEnumerable<TSource > source, Func<TSource, TResult > selector);

Select操作符会将集合中的每个元素都传入到委托参数中,返回委托参数加工后序列,如下示例,我们先定义一个People类,包含Name和Age字段,然后我只查询People集合中的Name信息。
class People
{
public String Name{get;set;}
public int Age{get;set;}
}

static void Main(string[] args)
{
    List<People > list = new List<People >();
    list.Add(new People() { Name = "李四", Age = 21 });
    list.Add(new People() { Name = "张三", Age = 20 });
    list.Add(new People() { Name = "王五", Age = 24 });

    var query = list.Select(p = > new { p.Name });
    foreach (var item in query)
    {
        Console.WriteLine(item);
    }

    Console.ReadLine();
}

输出效果如下:


第二个原型定义如下:
public static IEnumerable<TResult > Select<TSource, TResult >(this IEnumerable<TSource > source, Func<TSource, int, TResult > selector);

对比第一个原型定义,发现委托参数中多了一个int参数,这个参数是集合的下标,从0开始,如下示例,我们不仅输出People的名字,还输出他们在集合中的位置:
static void Main(string[] args)
{
    List<People > list = new List<People >();
    list.Add(new People() { Name = "李四", Age = 21 });
    list.Add(new People() { Name = "张三", Age = 20 });
    list.Add(new People() { Name = "王五", Age = 24 });

    var query = list.Select((p, i) = > new { Name = p.Name, Index = i });
    foreach (var item in query)
    {
        Console.WriteLine(item);
    }

    Console.ReadLine();
}

输出效果如下:
楸砗褪油脊钩? 可以把数据字典划分为静态数据字典和动态性能表两大类。
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 23+97=? 的结果(结果是:120)
结  果: