static void Main(string[] args)
{
#region MyRegion
//添加数据
//using (var db = new TestEFEntities())
//{
// db.Students.Add(new Student
// {
// Name = "lv22",
// Sex = "2"
// });
// db.SaveChanges();
//}
////查询
//using (var s_select = new TestEFEntities())
//{
// s_select.Database.Log = s => Console.WriteLine(s);
// var st = s_select.Students.First(s => s.Id == 6);
// //var m_student= s_select.Students.Select(u=>new { id = u.Id ,name=u.Name,sex=u.Sex}).FirstOrDefault();
//}
//删除
//using (var db = new TestEFEntities())
//{
// //实例化一个对象,并指定ID的值
// var n = new Student() { Id = 4 };
// //将n对象附到上下文当中
// db.Students.Attach(n);
// //删除n对象
// db.Students.Remove(n);
// db.SaveChanges();
// Console.WriteLine("删除成功");
// //1.1 先根据id查询 出 要删除的 对象(存入EF容器)
// Student usr = db.Students.Where(u => u.Id == 1).FirstOrDefault();
// //1.2 将实体对象删除(就是将 容器中的 代理对象的 State改成 Deleted)
// db.Students.Remove(usr);
// //1.3 将EF容器里所有的对象 根据 State 属性值,生成不同sql语句,更新到数据库
// db.SaveChanges();
//}
//修改
//using (var db = new TestEFEntities())
//{
// Student u = new Student() {Id=5, Name = "kim", Sex = "1" };
// db.Entry(u).State = EntityState.Modified;
// db.SaveChanges();
// Console.WriteLine("修改成功");
//}
//修改
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// var query = db.Students.FirstOrDefault(s => s.Id == 5);
// if (query != null)
// {
// query.Name = "kim";
// query.Sex = "1";
// db.SaveChanges();
// }
// db.SaveChanges();
// Console.WriteLine("修改成功");
//}
//////分组
//using (var db = new TestEFEntities())
//{
// //.Select(m => m.Max(o => o.Id)
// db.Database.Log = s => Debug.WriteLine(s);
// //db.Database.Log = s => File.("a.txt",s);
// //List <Student> list = new List<Student>();
// var temp1 = db.Students.GroupBy(x => x.Name).Select(s=>s.Key).ToList();
// // db.SaveChanges();
// Console.WriteLine(temp1);
// Console.ReadKey();
//}
//模糊查询
//using (var db=new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// var query = db.Students.Where(s => s.Name.Contains("k")).ToList();
//}
//排序
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// //var query = db.Students.OrderBy(s => s.Name).OrderByDescending(s=>s.Id).ToList();
// var query = db.Students.OrderBy(s => s.Id).ToList();
//}
//
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// var list2 =db.teachers.SelectMany(t => t.Student).Where(s => s < 60);
//}
//ForEach遍历
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// var _student = db.Students.ToList();
// // db.Students.ToList().ForEach(f => Console.WriteLine(f.Name));
// //_student.ForEach(s => {
// // s.Name = "aaaa";
// // s.Score = 89;
// //});
//}
//Console.ReadKey();
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// //返回多条符合结果的数据
// var st = db.Students.ToList().FindAll(s => s.Score >= 78);//find性能>where
// var st1 = db.Students.Where(s => s.Score >= 78).ToList();
// //返回-条符合结果的数据
// var ff = db.Students.ToList().Find(s=>s.Score>78);
// var ff2 = db.Students.FirstOrDefault(s => s.Score > 78);
// //检查后面条件是否成立,成立则返回true,否则返回false
// var ee = db.Students.ToList().Exists(s=>s.Score==62);
// Console.WriteLine(ee);
//}
//Console.ReadKey();
//删除多条符合条件的一批数据
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// //var n = new Student() { Id =( 1,2 )};
// //db.Students.Attach(n);
// var usr = db.Students.ToList().FindAll(s => s.Score >= 78);
// db.Students.RemoveRange(usr);
// db.SaveChanges();
// Console.WriteLine();
//}
//Console.ReadKey();
//
//using (var db = new TestEFEntities())
//{
// db.Database.Log = s => Debug.WriteLine(s);
// //var stu = db.Students.ToList().FindAll(s => s.Name == "k");
// var stu = db.Students.ToList().RemoveAll(s => s.Id == 5);
// db.SaveChanges();
// Console.WriteLine(stu);
//}
#endregion
List<Student> students = new List<Student>();
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 90 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 78 });
students.Add(new Student() { Name = "crank arm 80", Sex = "1", Score = 80 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 70 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 79 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 89 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 34 });
students.Add(new Student() { Name = "crank arm12312", Sex = "1", Score = 78 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 56 });
students.Add(new Student() { Name = "crank arm23432432", Sex = "1", Score = 78 });
students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 40 });
#region MyRegion
//返回第一个符合条件的数组成员所在的位置
// var index = students.FindIndex(s => s.Score == 78);
//返回符合条件的数组成员最后一个元素
//var index = students.FindLast(s=>s.Score==78);
//返回符合所定义的条件中成员最后一个匹配的项从零开始的索引
//var index = students.FindLastIndex(s=>s.Score==90);
//查找字符串首次出现的位置,返回索引值
//string test = "az fy";
//Console.WriteLine(test.IndexOf("z"));
//Insert在list里面插入一个实体,数据的位置由自己指定
//students.Insert(10,new Student { Id=1,Name= "crank arm",Sex="1",Score=100 });
//foreach (var item in students)
//{
// Console.WriteLine(item.Id.ToString()+" "+item.Name + " " + item.Sex + " " + item.Score);
//}
//对要查找的字符串从后往前查找,找到第一个匹配的位置
//string test = "abcdefjjkk";
//Console.WriteLine(test.LastIndexOf("j"));
//ToArray的使用是将一个集合转成一个数组返回集合里包含的所有元素
//Student[] stu = students.ToArray();
//Console.WriteLine(stu[9].Name);
//数组转集合
// int[] alist = new int[] { 23, 24, 29 };
//List<int> sd = alist.ToList();
// foreach (var item in sd)
// {
// Console.WriteLine(item);
// }
#endregion
#region MyRegion
//foreach (var item in students)
//{
// Console.WriteLine(item.Name + " ");
//}
//Console.WriteLine("----------------------------");
//修改
//students.ForEach(f =>
// {
// if (f.Score == 80)
// {
// f.Name = "则是一个";
// f.Sex = "2";
// f.Score = 99;
// }
// });
//foreach (var item in students)
//{
// Console.WriteLine(item.Name+" ");
//}
//Console.WriteLine(students);
//Console.ReadKey();
//RemoveAll删除
//students.RemoveAll(f=>f.Score==40);
//Remove删除
//var delete = students.Find(s => s.Score == 56);
//students.Remove(delete);
//模糊查询
// var stu= students.Where(s=>s.Name.Contains("80"));
//OrderBy升序,OrderByDescending降序
//var stu = students.OrderBy(s => s.Score).OrderByDescending(s=>s.Name).ToList();
// First
//var stu = students.First(s => s.Score == 80);
//Console.WriteLine(stu.Score);
// FirstOrDefault
//var stu = students.Select(s => s.Score == 90).FirstOrDefault();
//Console.WriteLine(stu);
#endregion
//分组
//var stu=students.GroupBy(s=>s.Score).ToList();
//foreach (var item in stu)
//{
// Console.WriteLine(item.Key);
//}
var ss = students.FindIndex(f => f.Score == 80);
var sss = students.FindLast(f => f.Score == 80);
var sd = students.FindLastIndex(f => f.Score == 80);
Console.WriteLine(sd);
foreach (var item in students)
{
Console.WriteLine(item);
}
Console.WriteLine("--------------------------------");
Student[] st = students.ToArray();
Console.WriteLine(st[0].Score);
//RemoveRange时删除指定某一段索引的值
//RemoveAt是删除指定索引的值
// students.RemoveRange(1,3);
//var st = students.ToList().FindAll(s => s.Score > 70);
//students.RemoveAt(1);
//RemoveAll是删除指定数据值
//var st = students.RemoveAll(s => s.Score == 90);
//foreach (var item in students)
//{
// Console.WriteLine(item.Score);
//}
List<Student> m_students = new List<Student>();
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 1 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 1 });
m_students.Add(new Student() { Name = "crank arm 80", Sex = "1", Score = 1 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 1 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 1 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 89 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 34 });
m_students.Add(new Student() { Name = "crank arm12312", Sex = "1", Score = 78 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 56 });
m_students.Add(new Student() { Name = "crank arm23432432", Sex = "1", Score = 78 });
m_students.Add(new Student() { Name = "crank arm", Sex = "1", Score = 40 });
//AddRange是添加到数组的末尾
//students.AddRange(m_students);
//Where是按指定条件查询,返回结果集,必须要加条件
//select是按指定的条件查询,返回Bool类型
//var s = students.Where(f => f.Name.Contains("80")).ToList();
//var ss = students.Select(f => f.Name.Contains("32")).ToList();
//Insert是指把添加插入到指定的序列
// students.Insert(7, new Student { Name = "111111111111111111111", Sex = "3", Score = 100 });
//foreach (var item in students)
//{
// Console.WriteLine(item.Name + " " + item.Sex + " " + item.Score);
//}
Console.ReadKey();
}