码迷,mamicode.com
首页 > 编程语言 > 详细

内存操作IEnumerable<T>,使用SelectMany方法将集合中的两列转成一列,一行转两行

时间:2020-01-16 19:10:54      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:sql   效果   cti   current   rabl   职业   func   ima   any   

原始数据:

var originalList = new List<dynamic>()
            {
                new{ Name="张三",age=10,Title1="职业一",Title2="职业二"},
                new{ Name="李四",age=10,Title1="职业一",Title2="职业二"},
                new{ Name="王五",age=10,Title1="职业一",Title2="职业二"}
            };

  转为同一列值:

var currentList = originalList.SelectMany(p => new[] { p.Title1, p.Title2 }, (p, t) => new { p.Name, p.age, t }).ToList();

  结果:技术图片

 

public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>(this IEnumerable<TSource> source, Func<TSource, IEnumerable<TCollection>> collectionSelector, Func<TSource, TCollection, TResult> resultSelector)
resultSelector的func委托中,可以操作中间序列TCollection,达到最终效果图,在不适用sql语句union等操作时,内存中直接操作集合,此方法非常方便。

内存操作IEnumerable<T>,使用SelectMany方法将集合中的两列转成一列,一行转两行

标签:sql   效果   cti   current   rabl   职业   func   ima   any   

原文地址:https://www.cnblogs.com/yzhj/p/12202476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!