zoukankan      html  css  js  c++  java
  • 【LINQ】Select与SelectMany的区别

    Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值。
    Select() 为每个源值生成一个结果值。因此,总体结果是一个与源集合具有相同元素数目的集合。与之相反,SelectMany() 将生成单一总体结果,其中包含来自每个源值的串联子集合。作为参数传递到 SelectMany() 的转换函数必须为每个源值返回一个可枚举值序列。然后,SelectMany() 将串联这些可枚举序列以创建一个大的序列。

    private class NamedEntity
    {
        public NamedEntity(int id, string name) { this.ID = id; this.Name = name; }
        public int ID { get; set; }
        public string Name { get; set; }
    }
    
    public Window()
    {
        InitializeComponent();
    
        NamedEntity[] list1 = { new NamedEntity(1, "Albert"), new NamedEntity(2, "Burke"), new NamedEntity(3, "Connor") };
        NamedEntity[] list2 = { new NamedEntity(2, "Albert was here"), new NamedEntity(3, "Burke slept late"), new NamedEntity(4, "Happy") };
        IList<NamedEntity[]> l = new List<NamedEntity[]>() { list1, list2 };
        IList<NamedEntity> tokens = l.SelectMany(a => a).ToList();
        var grp = tokens.GroupBy(a => a.ID);
        IList<NamedEntity> result = grp.SelectMany(a => a.Take(1)).ToList();
    }
  • 相关阅读:
    关系数据库&&NoSQL数据库
    NoSQL
    大数据时代的数据存储,非关系型数据库MongoDB
    判断是否为BST
    百度2017暑期实习生编程题
    memset()实现及细节
    在必须返回一个对象时,不要去尝试返回一个引用
    返回局部变量指针
    用引用返回值
    数组形参
  • 原文地址:https://www.cnblogs.com/chriskwok/p/11609515.html
Copyright © 2011-2022 走看看