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