68 lines
1.9 KiB
C#
68 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace NwGeoExporter.NwEx
|
|
{
|
|
public static class IEnumerableEx
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="arr"></param>
|
|
/// <returns></returns>
|
|
public static T[] ToArray<T>(this Array arr)
|
|
{
|
|
T[] result = new T[arr.Length];
|
|
Array.Copy(arr, result, result.Length);
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 找到第一个索引
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="array"></param>
|
|
/// <param name="func"></param>
|
|
/// <returns></returns>
|
|
public static int FindIndex<T>(this IEnumerable<T> array, Func<T, bool> func)
|
|
{
|
|
if (func == null) return -1;
|
|
for (int i = 0; i < array.Count(); i++)
|
|
{
|
|
var t = array.ElementAt(i);
|
|
if (func(t))
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 找到所有的索引
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <param name="array"></param>
|
|
/// <param name="func"></param>
|
|
/// <returns></returns>
|
|
public static List<int> FindIndexs<T>(this IEnumerable<T> array, Func<T, bool> func)
|
|
{
|
|
List<int> indexList = new List<int>();
|
|
if (func == null) return null;
|
|
for (int i = 0; i < array.Count(); i++)
|
|
{
|
|
var t = array.ElementAt(i);
|
|
if (func(t))
|
|
{
|
|
indexList.Add(i);
|
|
}
|
|
}
|
|
return indexList.Count == 0 ? null : indexList;
|
|
}
|
|
}
|
|
}
|