码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-06 23:49:25      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:

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();

}
}
}

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

标签:

原文地址:http://www.cnblogs.com/kexb/p/4857963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!