using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Remotely.Shared.Extensions; public static class IEnumerableExtensions { public static async IAsyncEnumerable ToAsyncEnumerable(this IEnumerable source) { foreach (var item in source) { yield return item; await Task.Yield(); } } public static int IndexWhere(this IEnumerable source, Func predicate) { var index = 0; foreach (var item in source) { if (predicate(item)) { return index; } index++; } return -1; } }