java - List<List<model>>如何更快捷的取里面的model?
PHP中文网
PHP中文网 2017-04-18 10:53:31
[Java讨论组]
访问接口返回数据类型为List<List<model>>,现在想将其中的model插入数据库,感觉一点点循环有点傻,0.0...,各位有没有其他的方法?
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(5)
PHP中文网

C#的话:

var flat = list.SelectMany(l=>l).ToList();

Java的话:

List<model> flat = list.stream().flatMap(List::stream).collect(Collectors.toList());
高洛峰

list.stream().flatMap(model-> model.stream()).forEach(System.out::println);

高洛峰

数据结构使然,循环吧

天蓬老师
        public static IEnumerable<T> GetItems<T>(this List<List<T>> list)
        {
            foreach (var child in list)
            {
                foreach (var item in child)
                {
                    yield return item;
                }
            }
        }

        public static IEnumerable<T> GetNestItems<T>(this System.Collections.IList list)
        {
            Type type = null;

            foreach (var item in list)
            {
                if (type == null) type = item.GetType();

                if (type == typeof(T))
                {
                    yield return (T)item;
                }
                else if (type.GetGenericTypeDefinition() == typeof(List<>))
                {
                    var items = GetNestItems<T>((System.Collections.IList)item);

                    foreach (var t in items)
                    {
                        yield return t;
                    }
                }
            }
        }
阿神

自己要不循环。要不接住其他函数来帮你完成循环。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号