• 【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();
    }
  • 相关阅读:
    深入浅出HTTP请求(转自http://www.cnblogs.com/yin-jingyu/archive/2011/08/01/2123548.html)
    IOS定位
    webView(简单的浏览器)
    Get&Post登录
    IOS多媒体
    IOS VFL屏幕自适应
    IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较
    单例设计的定义
    动画
    多线程
  • 原文地址:https://www.cnblogs.com/chriskwok/p/11609515.html
Copyright © 2020-2023  润新知