using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace Tool
{
    ///where T : class  使用的泛型只能是类 ,删除这句话,可以是任何类型
    public class MyList<T> : IEnumerable where T : class
    {
        public T this[int index] { get { return Ts[index]; } }
        ;
        ];
        public int Add(T t)
        {
            if (Count == Ts.Length)
            {
                T[] Tstemp = ];
                ; i < Ts.Length; i++)
                {
                    Tstemp[i] = Ts[i];
                }
                Ts = Tstemp;
            }
            Ts[Count] = t;
            Count++;
            return Count;
        }

        //public IEnumerator GetEnumerator()
        //{
        //    return Ts.GetEnumerator();
        //}
        public IEnumerator GetEnumerator()
        {
            ; i < Count; i++)
            {
                yield return Ts[i];
            }
        }
        public delegate TResult MyFunc<in T, out TResult>(T arg);
        public IEnumerable<T>
            Where(MyFunc<T, bool> predicate)
        {
            ; i < Count; i++)
            {
                if (!predicate.Invoke(Ts[i]))
                {
                    continue;
                }
                yield return Ts[i];
            }
        }
        public T Find(MyFunc<T, bool> predicate)
        {

            ; i < Count; i++)
            {
                if (predicate.Invoke(Ts[i]))
                {
                    return Ts[i];
                }

            }
            return Activator.CreateInstance<T>();

        }
        public bool RomveAt(int index)
        {
            try
            {
                ; i++)
                {
                    Ts[i] = Ts[i + ];
                }
                Count--;
                return true;
            }
            catch (Exception)
            {

                throw;
            }
        }
        public void Insert(int index, T item)
        {
            if (Ts.Length == Count)
            {
                T[] Tstemp = ];
                ; i < Ts.Length; i++)
                {
                    Tstemp[i] = Ts[i];
                }
                Ts = Tstemp;
            }
            T temp = Ts[index];
            for (int i = Count; i >= index; i--)
            {
                Ts[i + ] = Ts[i];
            }
            Ts[index] = item;
            Count++;
        }
    }
}

MyList 泛型委托的更多相关文章

  1. 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...

  2. Predicate<T>与Func<T, bool>泛型委托

    引用别人的: static void Main(string[] args) { List<string> l = new List<string>(); l.Add(&quo ...

  3. 委托学习笔记后续:泛型委托及委托中所涉及到匿名方法、Lambda表达式

    引言: 最初学习c#时,感觉委托.事件这块很难,其中在学习的过程中还写了一篇学习笔记:委托.事件学习笔记.今天重新温故委托.事件,并且把最近学习到和委托相关的匿名方法.Lambda表达式及泛型委托记录 ...

  4. 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...

  5. C#的泛型委托与闭包函数

    前些天Wendy问我说Func<T, ResultT>是个什么意思,初学C#都觉得这样的写法很奇葩,甚至觉得这样写有点诡异,其实以我来看,这是体现C#函数式编程的又一个亮点. 从MSDN上 ...

  6. C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法

    使用C#实现加减乘除算法经常被用作新手练习.本篇来分别体验通过委托.接口.匿名方法.泛型委托来实现. 使用委托实现 加减乘除拥有相同的参数个数.类型和返回类型,首先想到了使用委托实现. //创建一个委 ...

  7. C#泛型委托,匿名方法,匿名类

    class Test { delegate K proxy<T, K>(T t, K k); //泛型委托,注意返回值的写法,返回值的类型K先于其声明proxy<T,K>中的K ...

  8. 泛型委托 Predicate/Func/Action

    Predicate 泛型委托  表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素.看看下面它的定义: // Summar ...

  9. C#的泛型委托Predicate/Func/Action(转)

    Predicate 泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法.此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素. 类型参数介绍:    T: 要比较的对 ...

随机推荐

  1. ACM-ICPC 2018 南京赛区网络预赛 G Lpl and Energy-saving Lamps(线段树)

    题目链接:https://nanti.jisuanke.com/t/30996 中文题目: 在喝茶的过程中,公主,除其他外,问为什么这样一个善良可爱的龙在城堡里被监禁Lpl?龙神秘地笑了笑,回答说这是 ...

  2. Linux下搜狗输入法和快捷键Ctrl+Space冲突的解决

    配置快捷键(不是搜狗的设置) 把搜狗的启动快捷键给删了(如果有两个键盘[英+中],你按Shift就可以切换了,完全没必要占着茅坑) 其他快捷键冲突在键盘里面设置 over

  3. A1042. Shuffling Machine

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  4. (转)你应该知道的RPC原理

    背景:对于项目中的RPC框架,仅仅停留在使用层面,对于其底层的实现原理不是很清楚.这样的后果是很危险的,对于面试官来说,跟不知道这个东西一样. 转载自:https://www.cnblogs.com/ ...

  5. Failed to resolve: com.android.support:appcompat-v7:28 问题解决

    apply plugin: 'com.android.application' android { compileSdkVersion buildToolsVersion "28.0.2&q ...

  6. CentOS Bash 命令补全增强软件包 bash-completion

    引言 之前安装的 CentOS 7 是最小化安装,在使用 systemctl 命令进行服务的管理时,经常手动输入相关服务名.如果对一个服务名称不熟悉,这样可以迫使我们记住它,但如果对一个服务名已经很熟 ...

  7. 如何打开.lxe文件

    介绍两款播放器: 第一款:PotPlayer,这款软件快进看学习视频特特别方便. 软件的下载地址:链接:http://potplayer.daum.net/?lang=zh_CN 第二款:屏幕录像专家 ...

  8. Mac 软件专题:教学参考工具软件-外语/医学/天文/地理/数学等

    今天和大家分享mac软件专题:教学参考工具软件,在这个专题中,主要向大家推荐一些Mac上优秀的教育教学.知识参考类的软件,包含外语.医学.天文.地址.数学.音乐等方面,学生.老师以及相关的工作者不要错 ...

  9. nginx暴露目录文件

    location /apk_download { alias /usr/share/nginx/html/; include mime.types; default_type application/ ...

  10. 20165232 预备作业3 Linux安装及学习

    java第三次预作业--Linux安装及命令入门(学习记录) 通过老师给的学习基于VirtualBox虚拟机安装Ubuntu图文教程,我在自己笔记本上安装Linux操作系统,在安装过程中我遇到一些问题 ...