LINQ中select操作符(四)

一、Select操作符对单个序列或集合中的值进行投影。所谓投影,比如有一个数据集,想用LINQ语法去操作数据集,会写一个LINQ的表达式,表达式会把数据集合中的数据简单的投影到一个变量中,并且可以通过这个变量去筛选数据。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LinqOfSelectOperation
{
    public class Students
    {
        public string ID { get; set; }
        public string Name { get; set; }
        public string ClassName { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //使用集合初始化器给集合赋值
            List<Students> studentList = new List<Students>
            {
                new Students(){ID="0001", Name="张三", ClassName="01"},
                new Students(){ID="0002", Name="李四", ClassName="02"},
                new Students(){ID="0003", Name="王五", ClassName="01"}
            };

            //查询语法:全部返回
            var query1 = (from p in studentList where p.Name.StartsWith("") select p);
            //查询语法:返回匿名类
            var query2 = (from p in studentList where p.Name.StartsWith("") select new { p.ID, p.Name });
            //查询语法:返回匿名类,属性重新命名
            var query3 = (from p in studentList where p.Name.StartsWith("") select new { newID = p.ID, newName = p.Name });

            //查询方法: 全部返回, 可以省略最后的select延迟加载
            var query4 = studentList.Where(p => p.Name.StartsWith(""));
            //查询方法: 返回匿名类
            var query5 = studentList.Where(p => p.Name.StartsWith("")).Select(p => new { p.ID, p.Name });
            //查询语法:返回匿名类,属性重新命名
            var query6 = studentList.Where(p => p.Name.StartsWith("")).Select(p => new { newID = p.ID, newName = p.Name });
        }
    }
}

 二、带有迭代索引的select方法

class Program
{
    static void Main(string[] args)
    {
        var oldlist = new List<String>() { "Chinese", "English", "Math", "PE" };
        var newList = oldlist.Select((item, i) => $"{ i + 1}.{item}").ToList();
        Console.WriteLine("无索引之前的数据");
        oldlist.ForEach(Console.WriteLine);
        Console.WriteLine("有索引之前的数据");
        foreach (var item in newList)
        {
            Console.WriteLine(item);
        }
        Console.ReadLine();
    }
}

 

posted @ 2020-04-11 11:34  LuckyZLi  阅读(655)  评论(0编辑  收藏  举报