要使IEnumerable<T>
只读,可以使用ReadOnlyCollection<T>
类型。ReadOnlyCollection<T>
是一个包装类,它将IEnumerable<T>
转换为只读集合,以防止修改。以下是如何使用ReadOnlyCollection<T>
的示例:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
public class Program
{
public static void Main()
{
// 创建一个普通的 List<T>
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
// 将 List<T> 转换为只读的 ReadOnlyCollection<T>
ReadOnlyCollection<int> readOnlyCollection = new ReadOnlyCollection<int>(list);
// 尝试修改只读集合将引发 NotSupportedException
try
{
readOnlyCollection[0] = 99;
}
catch (NotSupportedException ex)
{
Console.WriteLine("尝试修改只读集合将引发 NotSupportedException: " + ex.Message);
}
// 输出只读集合的内容
foreach (int item in readOnlyCollection)
{
Console.WriteLine(item);
}
}
}
在这个示例中,我们首先创建了一个普通的List<int>
,然后将其转换为ReadOnlyCollection<int>
。尝试修改只读集合将引发NotSupportedException
。最后,我们遍历并输出只读集合的内容。
领取专属 10元无门槛券
手把手带您无忧上云