zoukankan      html  css  js  c++  java
  • Linq SelectMany 交叉连接

     

    示例一

        internal class Program
        {
            private static void Main(string[] args)
            {
                List<Teacher> teachers = new List<Teacher>
                {
                    new Teacher("a",new List<Student1>{ new Student1(100),new Student1(90),new Student1(30) }),
                    new Teacher("b",new List<Student1>{ new Student1(100),new Student1(90),new Student1(60) }),
                    new Teacher("c",new List<Student1>{ new Student1(100),new Student1(90),new Student1(40) }),
                    new Teacher("d",new List<Student1>{ new Student1(100),new Student1(90),new Student1(60) }),
                    new Teacher("e",new List<Student1>{ new Student1(100),new Student1(90),new Student1(50) }),
                    new Teacher("f",new List<Student1>{ new Student1(100),new Student1(90),new Student1(60) }),
                    new Teacher("g",new List<Student1>{ new Student1(100),new Student1(90),new Student1(60) })
                };
    
                IEnumerable<Student1> t1 = teachers.SelectMany(s => s.Students.Where(w => w.Score < 60));
                t1.ToList().ForEach(f => Console.WriteLine(f));
    
                Console.Read();
            }
        }
    
        internal class Student1
        {
            public int Score { get; set; }
    
            public Student1(int score)
            {
                Score = score;
            }
    
            public override string ToString()
            {
                return $"studen1 : {Score}";
            }
        }
    
        internal class Teacher
        {
            public string Name { get; set; }
    
            public List<Student1> Students;
    
            public Teacher(string order, List<Student1> students)
            {
                Name = order;
                Students = students;
            }
        }

    示例二 

                        var query = from left in Enumerable.Range(1, 4)
                                    from right in Enumerable.Range(11, left)
                                    select new { left, right };
    
                        var result = Enumerable.Range(1, 4).SelectMany(left => Enumerable.Range(11, left), (left, right) => new { left, right });
                        
                        foreach (var item in result)
                        {
                            Console.WriteLine(item);
                        }

  • 相关阅读:
    winform程序,备份数据库+并压缩+并删除以前的备份
    冒泡排序
    存储过程和SQL语句比较
    简单的firebird插入速度测试
    [收藏转]由于CredSSP加密Oracle修正 导致远程桌面报错处理
    由Handle转换为控件
    字符串格式化
    查询mssql的死锁语句
    读取和修改app.config文件
    json序列化与反序列化
  • 原文地址:https://www.cnblogs.com/refuge/p/8150629.html
Copyright © 2011-2022 走看看