只读的泛型集合(IList(Of T))
封装对集合成员的添加和删除操作有很多好处,所以成了一个惯用法。包括提供一个只读的getter和AddXX()、 RemoveXX()函数:
{
private IList<Car> _cars = new List<Car>();
public IList<Car> Cars
{
get { return new ReadOnlyCollection<Car>(_cars); }
}
public void AddCar(Car car)
{
_cars.Add(car);
}
}
public class Car
{
private Person _owner;
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
}
如果函数里已经有了一个List<Car>变量,就可以使用 AsReadOnly() 函数:
{
get
{
List<Car> cars = new List<Car>(_cars);
// do some some things
return cars.AsReadOnly();
}
}
转载于:https://www.cnblogs.com/1-2-3/articles/1401638.html
只读的泛型集合(IList(Of T))相关推荐
- C#中的集合、哈希表、泛型集合、字典
集合ArrayList 集合:集合可以看做是数组,可以将其看成"长度可变,具有很多方法的数组".使用ArrayList,首先需要导入命名空间using.system.collect ...
- C#读取数据库返回泛型集合 把DataSet类型转换为ListT泛型集合
/// <summary>/// 获取UserInfo泛型集合/// </summary>/// <param name="connStr">数 ...
- List泛型集合总结(一)
为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合: a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须 ...
- [工具类]DataTable与泛型集合List互转
写在前面 工作中经常遇到datatable与list,对于datatable而言操作起来不太方便.所以有的时候还是非常希望通过泛型集合来进行操作的.所以这里就封装了一个扩展类.也方便使用. 类 方法中 ...
- C#读取数据库返回泛型集合(DataSetToList)
一般我们用使用ADO.NET查询数据库返回泛型集合使用SqlDataReader逐行读取数据存入对象 代码 /// <summary> /// 获取UserInfo泛型集合 /// &l ...
- 【机房收费个人版】DataTable 与泛型集合的较量
将近三周的时间,我学到了很多知识,让我受益匪浅!也通过这三周的积累和整理,现在是时候写博客分享我的所知所得了..下面主要写DataTable.泛型集合以及它们之间的比较.. DataTable ...
- 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...
- c#3.0加入的一些新特性——泛型集合
c#3.0加入的一些新特性 1.泛型集合 2.隐式类型 3.自动实现属性 3.匿名方法 4.扩展方法 5.Lambda表达式 1.泛型集合 在.NET2.0中没有泛型集合定义集合用ArrayList定 ...
- C#泛型集合之Dictionaryk, v使用技巧
1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib) 2.描述 1).从一组键(Key)到一组值(Value) ...
- java 泛型集合 json_将泛型集合转换成分页json数据
[java]代码库package com.sunweb.util.jsonfactory; import java.util.List; import com.sunweb.util.jsonfact ...
最新文章
- C++中为何析构函数总是虚函数?
- 学习JavaScript你必须掌握的8大知识点
- https证书互信解决方案—创建私有CA并申请证书
- 在嵌套使用if语句时,C语言规定else总是什么?
- Linux读取SSD的smart信息,使用smartmontools查看SSD的“秘密”信息
- angular js创建表单_如何优雅的使用 Angular 表单验证
- Dockerfile文件详解
- 小米集团:回购460万股,耗资9818万港元
- php redis support,ThinkPHP5报错php not support: redis以及Redis的使用
- Crowd HDU - 4456 曼哈顿距离转切比雪夫距离的坐标变换与二维坐标离散化
- 远程工作两个月的体会(转)
- Hadoop完全分布式配置
- JavaScript实现的手风琴图片切换,鼠标悬停任意图片html前端源码
- css 画一条竖线 或横线
- 三菱FX5U系列PLC内置模拟量使用方法和输入输出信号接线
- 效率脚本:删除已经合并的git分支
- Python图形界面开发(一)——pyside入门
- Android Studio 模拟器打开dev setting 修改IP,重新Reload
- Altera FPGA程序固化(软件+硬件)
- DSP280049代码迁移DSP280039注意事项