当前位置: 首页 > news >正文

C#中的集合初始化器

C#中的集合初始化器是一种简洁的语法,允许在声明集合的同时初始化其元素。这种语法特别适用于初始化实现了IEnumerable接口并具有Add方法的集合类型,如List<T>Dictionary<TKey, TValue>等。

集合初始化器的基本用法

集合初始化器的基本语法如下:

var collection = new CollectionType<T> {element1,element2,...elementN
};

或者,对于需要指定键和值的集合(如字典),可以使用以下语法:

var dictionary = new Dictionary<TKey, TValue> {{ key1, value1 },{ key2, value2 },...{ keyN, valueN }
};

使用集合初始化器初始化集合的示例

  1. 初始化List
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };

这段代码创建了一个List<int>对象,并使用集合初始化器初始化了五个元素。

  1. 初始化Dictionary
Dictionary<string, int> ages = new Dictionary<string, int> {{ "Alice", 30 },{ "Bob", 25 },{ "Charlie", 35 }
};

这段代码创建了一个Dictionary<string, int>对象,并使用集合初始化器初始化了三个键值对。

  1. 使用对象初始化器初始化集合中的对象

当集合的元素是对象时,可以使用对象初始化器来初始化这些对象。例如:

List<Person> people = new List<Person> {new Person { Name = "Alice", Age = 30 },new Person { Name = "Bob", Age = 25 },new Person { Name = "Charlie", Age = 35 }
};

这段代码假设有一个Person类,具有NameAge属性。它创建了一个List<Person>对象,并使用集合初始化器和对象初始化器初始化了三个Person对象。

集合初始化器的优势

  • 简洁性:集合初始化器提供了一种简洁的语法来初始化集合,避免了在代码中显式调用Add方法。
  • 可读性:使用集合初始化器可以使代码更加易读,特别是当需要初始化大量元素时。
  • 灵活性:集合初始化器可以与对象初始化器结合使用,允许在初始化集合的同时初始化集合中的对象。
http://www.lryc.cn/news/496360.html

相关文章:

  • cartographer建图与定位应用
  • 专业解析 .bashrc 中 ROS 工作空间的加载顺序及其影响 ubuntu 机器人
  • Apache Doris 现行版本 Docker-Compose 运行教程
  • Flink四大基石之窗口(Window)使用详解
  • NGINX配置https双向认证(自签一级证书)
  • Flink双流Join
  • 【数据结构实战篇】用C语言实现你的私有队列
  • 基于web的海贼王动漫介绍 html+css静态网页设计6页+设计文档
  • 2022 年 9 月青少年软编等考 C 语言三级真题解析
  • 机器学习算法(六)---逻辑回归
  • 计算机科学中的主要协议
  • 下载maven 3.6.3并校验文件做md5或SHA512校验
  • 【Android】View工作原理
  • TIE算法具体求解-为什么是泊松方程和傅里叶变换
  • postman中获取随机数、唯一ID、时间日期(包括当前日期增减)截取指定位数的字符等
  • 【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法
  • flink学习(14)—— 双流join
  • HTTP协议详解:从HTTP/1.0到HTTP/3的演变与优化
  • 张量并行和流水线并行在Transformer中的具体部位
  • WEB开发: 丢掉包袱,拥抱ASP.NET CORE!
  • 【论文阅读】Federated learning backdoor attack detection with persistence diagram
  • Gooxi Eagle Stream 2U双路通用服务器:性能强劲 灵活扩展 稳定易用
  • 【计算机网络】实验2:总线型以太网的特性
  • 如何在Spark中使用gbdt模型分布式预测
  • Qt-5.14.2 example
  • virtualbox给Ubuntu22创建共享文件夹
  • GPT打字机效果—— fetchEventSouce进行sse流式请求
  • SpringBoot 在线家具商城:设计考量与实现细节聚焦
  • 每日速记10道java面试题07
  • 前端面试热门题(二)[html\css\js\node\vue)