LINQ -自加入列表
本文关键字:列表 LINQ | 更新日期: 2023-09-27 18:17:48
我有一个定义如下的List
var MList = new List<KeyValuePair<String, Object>>();
(Example list item { "Prj1" , {e1,e2,e3} }
理想情况下,List项应该包含一个项目名称(字符串)和一个管理员id数组(对象)。我需要创建和填充一个新的列表与项目从原来的列表展开。
结果列表如下所示,每一项都是一个字符串:
{"Prj1","e1"}
{"Prj1","e2"}
{"Prj1","e3"}
如何使用LINQ以上述格式获取项目到新列表
这可以使用SelectMany
完成,如下所示:
var expanded = MList.SelectMany(
item => ((IEnumerable<string>)item.Value).Select( str =>
new KeyValuePair<string,object>(item.Key, str)
)
);
以上假设Object
包含一个IEnumerable<string>
您的对象是IEnumerable
吗?
var newlist = from x in mList
from v in (IEnumerable<object>)x.Value
select new
{
x.Key,
v,
};