zoukankan      html  css  js  c++  java
  • 复习扩展方法 涉及委托,这里我使用自定义委托类型 public delegate bb MyFunc<in T,out bb> (T arg)

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

    namespace ConsoleApplication8
    {
    public static class ListExt
    {
    public delegate bb MyFunc<in T, out bb>(T arg);
    public static List<T> MyWhere<T>(this List<T> list, MyFunc<T,bool> whereLambada )
    {
    List<T> myList=new List<T>();
    foreach (T obj in list)
    {
    if (whereLambada(obj))
    {
    myList.Add(obj);
    }

    }
    return myList;

    }
    }

    public class Student
    {

    public int No { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    }

    class Program
    {
    static void Main(string[] args)
    {
    //TestDb2Entities1 DbContext = new TestDb2Entities1();

    //var stu = (from s in DbContext.UserInfoSets where s.Id == 1 select s).First();
    //RoleInfoSet r = stu.RoleInfoSets.ToList()[0];
    //DataTable table=new DataTable();
    //var t = from s in table.AsEnumerable() group s by s.Field<Int32>("") into g select g;

    DataTable table = new DataTable();
    table.Columns.Add("Id", typeof(Int32));
    table.Columns.Add("Name", typeof(String));
    table.Columns.Add("Age", typeof(Int32));

    DataRow row = table.NewRow();
    row["Id"] = 1;
    row["Name"] = "1";
    row["Age"] = 10;
    table.Rows.Add(row);

    row = table.NewRow();
    row["Id"] = 2;
    row["Name"] = "2";
    row["Age"] = 2;
    table.Rows.Add(row);


    row = table.NewRow();
    row["Id"] = 1;
    row["Name"] = "3";
    row["Age"] = 3;
    table.Rows.Add(row);

    //var stus = from s in table.AsEnumerable() group s by s.Field<Int32>("Id") into g select
    //new {
    // key=g.Key,value=g
    //}
    //;

    var stus = from s in table.AsEnumerable()
    where s.Field<Int32>("Id") == 1
    group s by s.Field<Int32>("Id")
    into g
    select g;

    var list = stus.ToList();
    var c = list[0].ToList()[1].Field<Int32>("Age");


    List<Student> stuList=new List<Student>();
    stuList.Add(new Student() { No = 1,Name = "2",Age = 1});
    stuList.Add(new Student() {No = 2,Name = "2",Age = 3});

    var data = stuList.MyWhere(x => x.No == 1);

    Console.ReadKey();

    }
    }
    }

  • 相关阅读:
    043_生成随机密码
    042_提示用户输入年份后测试判断是否为闰年
    041_查找 Linux 系统中的僵尸进程
    040_删除某个目录下大小为 0 的文件
    039_显示 CPU 厂商信息
    038_使用脚本自动创建逻辑卷
    037_自动添加防火墙规则,开启某些服务或端口(适用于 RHEL7)
    bzoj1537
    bzoj2466
    bzoj1047
  • 原文地址:https://www.cnblogs.com/kexb/p/4857963.html
Copyright © 2011-2022 走看看