C# 泛型数组学习小结_C#教程

C# 泛型和数组在 C# 2.0 中,下限为零的一维数组自动实现 IList<T>。这使您可以创建能够使用相同代码循环访问数组和其他集合类型的泛型方法。此技术主要对读取集合中的数据很有用。IList<T> 接口不能用于在数组中添加或移除元素;如果试图在此上下文中调用 IList<T> 方法(如数组的 RemoveAt),将引发异常。下面的代码示例演示带有 IList<T> 输入参数的单个泛型方法如何同时循环访问列表和数组,本例中为整数数组。

C# 泛型和数组代码

复制代码 代码如下:

class Program
{
static void Main()
{
int[] arr = { 0, 1, 2, 3, 4 };
List<int> list = new List<int>();
for (int x = 5; x < 10; x++)
{
list.Add(x);
}
ProcessItems<int>(arr);
ProcessItems<int>(list);
}
static void ProcessItems<T>(IList<T> coll)
{
foreach (T item in coll)
{
System.Console.Write(item.ToString() + " ");
}
System.Console.WriteLine();
}
}

C# 泛型和数组应用时注意

尽管 ProcessItems 方法无法添加或移除项,但对于 ProcessItems 内部的 T[],IsReadOnly 属性返回 False,因为该数组本身未声明 ReadOnly 特性。

C# 泛型和数组的相关内容就向你介绍到这里,希望对你了解和学习C# 泛型和数组有所帮助。

时间: 2024-10-27 10:00:38

C# 泛型数组学习小结_C#教程的相关文章

C# 泛型深入理解介绍_C#教程

引言: 在上一个专题中介绍了C#2.0 中引入泛型的原因以及有了泛型后所带来的好处,然而上一专题相当于是介绍了泛型的一些基本知识的,对于泛型的性能为什么会比非泛型的性能高却没有给出理由,所以在这个专题就中将会介绍原因和一些关于泛型的其他知识. 一.泛型类型和类型参数 泛型类型和其他int,string一样都是一种类型,泛型类型有两种表现形式的:泛型类型(包括类.接口.委托和结构,但是没有泛型枚举的)和泛型方法.那什么样的类.接口.委托和方法才称作泛型类型的呢 ?我的理解是类.接口.委托.结构或方

C#中数组Array,ArrayList,泛型List详细对比_C#教程

在C#中数组Array,ArrayList,泛型List都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析. 一.数组Array 数组是一个存储相同类型元素的固定大小的顺序集合.数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义. 数组在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也非常简单. Array数组具体用法: using System; names

C#数组的常用操作方法小结_C#教程

1. 数组的声明和赋值方式 int[] myArray; int[] myArray = {1, 2, 3, 4}; int[] myArray = new int[4] {1, 2, 3, 4}; 2. 多维数组的声明 int[,] myArray = new int[2, 3]; int[,] myArray = { {1, 2, 3}, {1, 2, 3} }; 获取多维数组元素,可以使用: myArray[0, 1]; // 2 3. 锯齿数组的声明 int[][] myArray =

那些年,我还在学习C# 学习笔记_C#教程

C#是一门面向对象的语言,具有面向对象的基本特征,抽象.封装.继承.多态等性质.学习C#除了一些基本的语法,还得学习一些新的特性,比如说:泛型.多线程.集合.反射等,下面就选其中一些来学习吧! 一.C#中的各种器 A. C#构造器-构造函数 如下: 复制代码 代码如下: //构造器1 public Products(int id) { _Id = id; } //构造器2,使用this来调用构造器1 public Products(int id, string Name, string Band

C# SQlite操作方法小结_C#教程

本文实例分析了C# SQlite操作方法.分享给大家供大家参考,具体如下: 最近项目需求用C#保存一些数据,如此先总结一下.需要下载Sqlite 库 SourceForge 链接网址http://sourceforge.net/projects/sqlite-dotnet2/或到官方网http://www.sqlite.org/download.html下载都可以,下载之后安装.在C#项目中添加引用 引入安装目录bin中的System.Data.SQLite.dll.添加命名空间using Sy

C#小数点格式化用法小结_C#教程

本文实例讲述了C#小数点格式化用法.分享给大家供大家参考,具体如下: 1.ToString()方法 double d=12345678.2334; Console.WriteLine(d.ToString("F2")); //1234.23 Console.WriteLine(d.ToString("###,###.00")); //12,345,678.23 2.Math.Round()方法 Math.Round(3.44, 1); //Returns 3.4.

C#使用foreach循环遍历数组完整实例_C#教程

本文实例讲述了C#使用foreach循环遍历数组的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //声明数组. 第一种方法. 声明并分配元素大小. int[] Myint

c#数组详解_C#教程

数组是一种数据结构,其声明方式如下: type[] arrayName; 数组具有以下属性:     1.数组可以是一维.多维或交错的.     2.数值数组元素的默认值设置为零,而引用元素的默认值设置为 null.     3.交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null.     4.数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1.     5.数组元素可以是任何类型,包括数组类型. 一维数组   //声明一维数组,没有初始化,等于null int

C#往线程里传递参数的方法小结_C#教程

传参方式有两种: 1.创建带参构造方法类 传参 2.利用Thread.start(8)直接传参,该方法会接收一个对象,并将该对象传递给线程,因此在线程中启动的方法 必须接收object类型的单个参数. Thread (ParameterizedThreadStart) 初始化 Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托. Thread (ThreadStart) 初始化 Thread 类的新实例. 由 .NET Compact Framework 支持. Thread (