首页 > 编程语言 >C# List.Select()

C# List.Select()

时间:2024-02-28 14:34:41浏览次数:22  
标签:return name C# gender List public Select

List.Select():一般List中的元素是对象的时候,可以通过Selec()获取列表中对象的属性值列表。

  1 using System.Collections;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using UnityEngine;
  5 
  6 public class Test : MonoBehaviour
  7 {
  8     /// <summary>
  9     /// 所有学生
 10     /// </summary>
 11     public List<Student> students = new List<Student>();
 12 
 13     private void Start()
 14     {
 15         //提取所有学生的姓名和性别
 16         foreach (var nameAndGender in ExtractAllStudentNameAndAge())
 17         {
 18             Debug.Log(nameAndGender.name +"," + nameAndGender.gender);
 19         }
 20 
 21         //提取所有学生的学号
 22         foreach (var id in ExtractAllStudentId())
 23         {
 24             Debug.Log(id);
 25         }
 26 
 27         //每个学生年龄是否大于23
 28         foreach (var item in AgeOver23())
 29         {
 30             Debug.Log(item);
 31         }
 32     }
 33 
 34     #region 提取所有学生的姓名和性别
 35 
 36     /*//写法1
 37     List<dynamic> ExtractAllStudentNameAndAge()
 38     {
 39         List<dynamic> allId = students.Select(
 40                t => (dynamic)new { t.name, t.gender }
 41                ).ToList();
 42 
 43         return allId;
 44     }*/
 45 
 46     //写法2
 47     List<NameAndGender> ExtractAllStudentNameAndAge()
 48     {
 49         List<NameAndGender> allId = students.Select(
 50                t => new NameAndGender(t.name, t.gender)
 51                ).ToList();
 52 
 53         return allId;
 54     }
 55     #endregion
 56 
 57     #region 提取所有学生的学号
 58 
 59     /*//写法1
 60     List<dynamic> ExtractAllStudentId()
 61     {
 62         List<dynamic> allId = students.Select(
 63                 t => (dynamic)t.id
 64                 ).ToList();
 65 
 66         return allId;
 67     }*/
 68 
 69     //写法2
 70     List<int> ExtractAllStudentId()
 71     {
 72         List<int> allId = students.Select(
 73                t => (int)t.id
 74                ).ToList();
 75 
 76         return allId;
 77     }
 78     #endregion
 79 
 80     #region 每个学生年龄是否大于23
 81 
 82     /*//写法1
 83     List<dynamic> AgeOver23()
 84     {
 85         List<dynamic> allResult = students.Select(
 86                t => (dynamic)t.age > 23
 87                ).ToList();
 88 
 89         return allResult;
 90     }*/
 91 
 92     //写法2
 93     List<bool> AgeOver23()
 94     {
 95         List<bool> allResult = students.Select(
 96                t => t.age > 23
 97                ).ToList();
 98 
 99         return allResult;
100     }
101     #endregion
102 }
103 /// <summary>
104 /// 学生信息
105 /// </summary>
106 [System.Serializable]
107 public class Student
108 {
109     /// <summary>
110     /// 名字
111     /// </summary>
112     public string name;
113     /// <summary>
114     /// 年龄
115     /// </summary>
116     public int age;
117     /// <summary>
118     /// 学号
119     /// </summary>
120     public int id;
121     /// <summary>
122     /// 性别
123     /// </summary>
124     public Gender gender;
125 
126     public override string ToString()
127     {
128         return string.Format("{0},{1},{2},{3}", name, age, id, gender == Gender.Female ? "女" : "男");
129     }
130 }
131 /// <summary>
132 /// 性别
133 /// </summary>
134 public enum Gender
135 {
136     /// <summary>
137     /// 女性
138     /// </summary>
139     Female,
140     /// <summary>
141     /// 男性
142     /// </summary>
143     Male,
144 }
145 public class NameAndGender
146 {
147     /// <summary>
148     /// 名字
149     /// </summary>
150     public string name;
151     /// <summary>
152     /// 性别
153     /// </summary>
154     public Gender gender;
155     public NameAndGender(string name, Gender gender)
156     {
157         this.name = name;
158         this.gender = gender;
159     }
160     public override string ToString()
161     {
162         return string.Format("{0},{1}", name, gender == Gender.Female ? "女" : "男");
163     }
164 }
View Code

 

标签:return,name,C#,gender,List,public,Select
From: https://www.cnblogs.com/Peng18233754457/p/18040294

相关文章

  • Hudi-FlinkSQL导入数据报错:[ERROR] Could not execute SQL statement. Reason: java.l
    问题描述通过FlinkSQL创建Hudi表后,向表中插入数据报错:[ERROR]CouldnotexecuteSQLstatement.Reason:java.lang.ClassNotFoundException:org.apache.hadoop.fs.FSDataInputStream 解决办法向Hudi表中写入数据时,会调用Hadoop的Jar包,但是Flink的lib目录中没有该Jar包。......
  • 漫谈.net core和Autofac中的Scoped生命周期
      我们知道,.netcore内置了IOC容器,通常,一个服务的生命周期有三种:Transient、Scoped、Singleton  Transient:临时性的服务,当进行服务注入时,每次都是重新创建一个新的对象实例Scoped:范围性的服务,当在一个范围内进行服务注入时,保证使用同一个实例对象(可以理解为一个ISer......
  • redis自学(7)RedisObject
    RedisObjectredis中的任意数据类型的键和值都会封装为一个RedisObject,也叫做Redis对象。    Redis对象头部占16个字节(不包含指针指向的内存空间),所以大量数据使用的情况下,不推荐使用OBJ_STRING类型存储,用OBJ_LIST更好Redis的编码方式   ......
  • A. Brick Wall
    原题链接题解要让水平块尽可能多,垂直块尽可能少垂直块最少为零,也就是说,一行里全部都是水平块,可不可能?答案是可能的,一定存在某种组合使得水平块刚好塞满一行那么这种方块数最多的组合是多少?每个方块长度都为2,如果\(m\)为奇数,最后一个方块长度为3题解#include<bits/stdc++.......
  • WPF DataGrid下的单元格嵌入CheckBox列表
    <DataGridWidth="auto"Height="auto"AutoGenerateColumns="False"CanUserAddRows="False"GridLinesVisibility="All">        <DataGrid.Columns><DataGridTempla......
  • oracle表空间不足报错排查及扩容
    一、报错代码:Errorupdatingdatabase. Cause:java.sql.SQLException:ORA-01691:unabletoextendlobsegmentOMSP_FLOWGINE.SYS_LOB0000035445C00014$$by1024intablespaceOMSP 二、排查执行下面sql:SELECTa.tablespace_name,TRUNC(tablespace_size......
  • createRange表示文档中的一个范围——用于js判断文字添加省略号情况
    document.createRange()是JavaScript中的一个方法,用于创建一个Range对象,表示文档中的一个范围。Range对象通常用于选择文档中的一部分内容,然后对其进行操作。它可以:设置选中文本范围:可以使用document.createRange()方法创建一个Range对象,并使用setStart()和setEnd(......
  • cf1748f-solution
    CF1748FSolutionlink题目也就是要我们交换每对\(a_i\)和\(a_{n-1-i}\)。考虑如何利用这个异或操作交换:我们自然地想到x^=y,y^=x,x^=y。如何操作使得x^=y?我们把环上\(x\)到\(y\)的路径拉出来,假装是个序列:\(a_x.a_{x+1},a_{x+2},\dots,a_{y-2},a_{y-1},a_y\)现在要使......
  • cf1621g-solution
    CF1621GSolutionlink考虑对每个位置\(i\)作为\(i_j\)时计算贡献。\(i\)对一次答案有贡献当且仅当:设其子序列内最右端的位置为\(r\),则要满足\(r\)右侧存在一个数大于\(a_{i}\)。即,设\(lst_i\)表示整个序列最右侧的大于\(a_i\)的数,要满足\(lst_i>r\)。现......
  • cf1606e-solution
    CF1606ESolutionlink考虑dp。注意到这个题造成的伤害与剩余人数有关,每次消灭的人数又与剩余人的血量最大值有关:设\(dp_{i,j}\)表示剩下\(i\)个人中血量最大值为\(j\)的方案数。显然当\(i-1>=j\)时一次伤害就可以杀光所有人,于是这时\(dp_{i,j}=j^i-(j-1)^i\)(只需让......