当前位置: 首页 > news >正文

C#高级语法:Linq中使用SelectMany解决列表子项提取、双重for循环的问题

一、列表子项提取

class Program
{
    static void Main()
    {
        var students = new List<Student>
        {
            new Student { Name = "Alice", Courses = new List<string> { "Math", "Science" } },
            new Student { Name = "Bob", Courses = new List<string> { "English", "History" } },
            new Student { Name = "Charlie", Courses = new List<string> { "Art", "Music" } }
        };
 
        //注意:x.Courses的类型是List<string>,SelectMany提取后的结果类型不变,一样是List<string>
        List<string> course_list = students.SelectMany(x => x.Courses).ToList();//["Math", "Science", "English", "History", "Art", "Music"]

    }
}

二、双重for循环

class Program
{
    static void Main()
    {
        var students = new List<string> { "Alice", "Bob", "Charlie" };
        var grades = new List<int> { 90, 80, 85 };

        //x是students的子项,y是grades的子项,第二入参是x和y,出参可以自定义类型
        var result = students.SelectMany(x => grades, (x, y) => new { Name = x, Score = y });// 主列表.SelectMany(x => 次列表, 入参为x和y出参可自定义的委托)

        foreach (var item in result)
        {
            Console.WriteLine($"{item.Name} :{item.Score}");
        }
        /*
                Alice :90
                Alice :80
                Alice :85
                Bob :90
                Bob :80
                Bob :85
                Charlie :90
                Charlie :80
                Charlie :85
         */
    }
}

三、笛卡尔积(扩展)

C#高级:结合Linq的SelectMany方法实现笛卡尔积效果_c# selectmany-CSDN博客

相关文章:

  • 06软件测试需求分析案例-添加用户
  • NLP高频面试题(四十)——什么是 BitFit?
  • Excel 插件推荐:提升Excel能力的效率神器!
  • 基于YOLOv8的机场跑道异物检测识别系统:提升航空安全的新一代解决方案(主页有源码)
  • 使用Python从零实现一个端到端多模态 Transformer大模型
  • 医院访客登记如何做才能更高效?
  • 从零开始构建智能聊天机器人:Rasa与ChatGPT API实战教程
  • 世界复合医学杂志世界复合医学杂志社世界复合医学编辑部2024年第11期目录
  • Java-servlet(完结篇)过滤器乱码解决与监听器
  • 什么是微前端?有什么好处?有哪一些方案?
  • 架构师面试(二十八):业务建模
  • 实操(环境变量)Linux
  • SAP-ABAP:SAP的Open SQL和Native SQL详细对比
  • Linux 查看 Java 项目的进程和服务名
  • java基础多态------面试八股文
  • 质检LIMS系统在半导体制造行业的应用 半导体质量革命的现状
  • 金融行业网络安全加固方案
  • 利用DeepFlow解决APISIX故障诊断中的方向偏差问题
  • Java设计模式:系统性解析与核心模式
  • linux DNS域名解析服务
  • 南昌手机网站制作/百度网站提交了多久收录
  • 中小网站公司做的推广怎么样/关键词你们都搜什么
  • 自己做单词卡的网站是什么/网络营销策划书包括哪些内容
  • 济南网站建设搜点网络/网址怎么推广
  • 做7寸照片的网站/做一个推广网站大概多少钱
  • 网站建设费用会计分录/郑州网站建设推广有限公司