• 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();
        }
    }

  • 相关阅读:
    LeetCode
    数据流中的中位数
    二叉搜索树的第k个结点
    对称的二叉树
    按之字形顺序打印二叉树
    把二叉树打印成多行
    二叉树的下一个结点
    链表中环的入口结点
    删除链表中重复的结点
    不用加减乘除做加法
  • 原文地址:https://www.cnblogs.com/LuckyZLi/p/12678441.html
Copyright © 2020-2023  润新知