泛型和数组(C# 编程指南) - C# 编程指南

返回介绍

泛型和数组(C# 编程指南)

发布于 2019-11-12 字数1485 浏览 919 评论 0

在 C# 2.0 以及更高版本中,下限为零的一维数组自动实现 IList<(Of <(T>)>)。这使您可以创建能够使用相同代码循环访问数组和其他集合类型的泛型方法。此技术主要对读取集合中的数据很有用。IList<(Of <(T>)>) 接口不能用于在数组中添加或移除元素。如果尝试对此上下文中的数组调用 IList<(Of <(T>)>) 方法(例如 RemoveAt),则将引发异常。

下面的代码示例演示带有 IList<(Of <(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();
    }
}

说明:

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

请参见

概念

C# 编程指南

参考

泛型(C# 编程指南)数组(C# 编程指南)System.Collections.Generic

其他资源

.NET Framework 中的泛型

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!