Files
HandyControl/src/Shared/HandyControl_Shared/Tools/Extension/EnumerableExtension.cs
T

32 lines
917 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
namespace HandyControl.Tools.Extension
{
public static class EnumerableExtension
{
public static IEnumerable<TSource> Do<TSource>(this IEnumerable<TSource> source, Action<TSource> predicate)
{
var enumerable = source as IList<TSource> ?? source.ToList();
foreach (var item in enumerable)
{
predicate.Invoke(item);
}
return enumerable;
}
public static IEnumerable<TSource> DoWithIndex<TSource>(this IEnumerable<TSource> source, Action<TSource, int> predicate)
{
var enumerable = source as IList<TSource> ?? source.ToList();
for (var i = 0; i < enumerable.Count; i++)
{
predicate.Invoke(enumerable[i], i);
}
return enumerable;
}
}
}