簡體   English   中英

LINQ-自我加入列表

[英]LINQ - Self join in list

我有一個列表定義如下

 var MList = new List<KeyValuePair<String, Object>>();
(Example list item { "Prj1" ,  {e1,e2,e3} }

理想情況下,列表項應包含項目名稱(字符串)和管理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,
              };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM