File: Primitives\ItemDelegateList.cs
Web Access
Project: src\src\Core\src\Core.csproj (Microsoft.Maui)
using System;
using System.Collections;
using System.Collections.Generic;
 
namespace Microsoft.Maui
{
	public class ItemDelegateList<T> : IReadOnlyList<T>
	{
		public ItemDelegateList(IItemDelegate<T> itemDelegate)
		{
			ItemDelegate = itemDelegate;
		}
		public T this[int index] => ItemDelegate.GetItem(index);
 
		public int Count => ItemDelegate.GetCount();
 
		public IItemDelegate<T> ItemDelegate { get; }
 
		public IEnumerator<T> GetEnumerator()
		{
			var count = ItemDelegate.GetCount();
			for (var i = 0; i < count; i++)
				yield return ItemDelegate.GetItem(i);
		}
 
		IEnumerator IEnumerable.GetEnumerator()
		{
			var count = ItemDelegate.GetCount();
			for (var i = 0; i < count; i++)
				yield return ItemDelegate.GetItem(i);
		}
	}
}