public static int Length <Tsource>(this MyIEnumerable <Tsource> source) { int i = 0; foreach (Tsource element in source) { i++; } return(i); }
public static bool Any <Tsource>(this MyIEnumerable <Tsource> source, Func <Tsource, bool> condition) { foreach (Tsource element in source) { if (condition(element)) { return(true); } } return(false); }
public static Tsource[] ToArray <Tsource>(this MyIEnumerable <Tsource> source) { Tsource[] array = new Tsource[source.Length()]; int i = 0; foreach (Tsource element in source) { array[i] = element; i++; } return(array); }
// Use this for initialization void Start() { string[] datas = { "111", "2222", "33333" }; MyIEnumerable myIEnumerable = new MyIEnumerable(datas); //方法1 foreach (var item in datas) { Debug.Log(item); } PointerEventData ped = new PointerEventData(EventSystem.current); ped.position = Input.mousePosition; List <RaycastResult> results = new List <RaycastResult>(); GraphicRaycaster raycaster = null; raycaster.Raycast(ped, results); //方法2 // MyIEnumerator myIEnumerator = myIEnumerable.GetEnumerator(); // while (myIEnumerator.MoveNext()) // { // Debug.Log("while....."+myIEnumerator.Current); // } }
public WhereEnumerable(MyIEnumerable <Tsource> source, Func <Tsource, bool> cond) { this.source = source; this.cond = cond; }
public static MyIEnumerable <Tsource> Select <Tsource>(this MyIEnumerable <Tsource> source, Func <Tsource, Tsource> function) { var result = new SelectEnumerable <Tsource>(source, function); return(result); }
public static MyIEnumerable <Tsource> Where <Tsource>(this MyIEnumerable <Tsource> source, Func <Tsource, bool> condition) { var result = new WhereEnumerable <Tsource>(source, condition); return(result); }
public SelectEnumerable(MyIEnumerable <Tsource> source, Func <Tsource, Tsource> fun) { this.source = source; this.fun = fun; }