IsFixedSize
是 ICollection
接口的一种方法,其返回一个布尔值,指示集合是否具有固定大小。
语法
public bool IsFixedSize { get; }
返回值
方法返回一个布尔值,true表示集合大小是固定的;否则,false表示集合大小是可变的。
示例1
string[] languages = new string[] { "C#", "JavaScript", "Python", "Java" };
Console.WriteLine($"初始集合大小:{languages.Length},是否固定大小:{((ICollection)languages).IsFixedSize}");
((ICollection)languages).Add("Swift"); //抛出NotSupportedException
Console.WriteLine($"添加元素后集合大小:{languages.Length},是否固定大小:{((ICollection)languages).IsFixedSize}");
输出:
初始集合大小:4,是否固定大小:True
System.NotSupportedException: 不支持集合的添加或移除。
在 System.Collections.Generic.ArrayReadOnlyList1.System.Collections.IList.Add(Object value)
在 System.Collections.IList.Add(Object value)
在 Program.Main(String[] args) 位置 xxx
添加元素后集合大小:4,是否固定大小:True
本示例中,我们创建了一个固定大小为4的字符串数组,并以此来演示 IsFixedSize
的使用。因为这个数组是一个固定大小的集合,所以 IsFixedSize
属性返回的值是 true
。我们试图在后面添加一个新的元素 "Swift",这时将抛出 NotSupportedException
异常,其原因是不支持添加或移除集合中的元素。最终,我们检查集合大小是否已改变,并再次检查 IsFixedSize
属性的值,我们发现其返回值仍为 true
,表示集合大小依然是固定的。
示例2
//实现了 ICollection 接口的 MyCustomList 类
public class MyCustomList<T> : ICollection<T>
{
private List<T> _list = new List<T>();
public int Count => _list.Count;
public bool IsReadOnly => false;
public bool IsFixedSize { get; } = false;
public void Add(T item)
{
_list.Add(item);
}
public void Clear()
{
_list.Clear();
}
public bool Contains(T item)
{
return _list.Contains(item);
}
public void CopyTo(T[] array, int arrayIndex)
{
_list.CopyTo(array, arrayIndex);
}
public IEnumerator<T> GetEnumerator()
{
return _list.GetEnumerator();
}
public bool Remove(T item)
{
return _list.Remove(item);
}
IEnumerator IEnumerable.GetEnumerator()
{
return _list.GetEnumerator();
}
}
//使用 MyCustomList 来演示
MyCustomList<int> myList = new MyCustomList<int>();
Console.WriteLine($"初始集合大小为:{myList.Count},是否固定大小:{((ICollection)myList).IsFixedSize}");
myList.Add(1);
myList.Add(2);
myList.Add(3);
Console.WriteLine($"添加元素后集合大小为:{myList.Count},是否固定大小:{((ICollection)myList).IsFixedSize}");
输出:
初始集合大小为:0,是否固定大小:False
添加元素后集合大小为:3,是否固定大小:False
本示例中,我们自定义了一个泛型集合 MyCustomList
,实现了 ICollection
接口中的所有成员,并通过 IsFixedSize
属性将其设置为可变大小的集合。我们使用 MyCustomList
来创建一个实例,然后添加三个元素到这个集合中。我们检查集合大小和 IsFixedSize
属性的值,并观察到 IsFixedSize
属性返回的值为 false
,表示集合大小是可变的。
总之,IsFixedSize
属性可用于确定集合是否具有固定大小。当集合的大小是固定的时,只能在初始化时添加或删除元素,不能在运行时进行添加或删除操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# IsFixedSize:获取一个值,该值指示集合是否具有固定大小 - Python技术站