为了账号安全,请及时绑定邮箱和手机立即绑定

List<List<model>>如何更快捷的取里面的model?

List<List<model>>如何更快捷的取里面的model?

波斯汪 2019-03-01 11:13:46
访问接口返回数据类型为List<List<model>>,现在想将其中的model插入数据库,感觉一点点循环有点傻,0.0...,各位有没有其他的方法?
查看完整描述

5 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

C#的话:

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

Java的话:

List<model> flat = list.stream().flatMap(List::stream).collect(Collectors.toList());
查看完整回答
反对 回复 2019-03-01
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-03-01
?
四季花海

TA贡献1811条经验 获得超5个赞

数据结构使然,循环吧

查看完整回答
反对 回复 2019-03-01
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

        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;
                    }
                }
            }
        }
查看完整回答
反对 回复 2019-03-01
?
慕斯王

TA贡献1864条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 499 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信