在 C# 中将 List<IEnumerable<int>> 转换为 List<int> [重复]

Posted

技术标签:

【中文标题】在 C# 中将 List<IEnumerable<int>> 转换为 List<int> [重复]【英文标题】:convert List<IEnumerable<int>> to List<int> in C# [duplicate] 【发布时间】:2021-10-20 10:55:13 【问题描述】:

¡嗨!我需要帮助解决这个问题。当我提出请求时,给我的结果是 IEnumerable。我需要将此 IEnumerable 转换为 List。这段代码解决了我的问题,但我正在寻找比这更优雅的解决我的问题的另一种方法。

   var folderCategoriesIds = FolderRepository.GetAll().Where(c => folderIds.Any(y => y == c.Id)).Select(x => x.Categories.Select(y => y.Id)).ToList();
   List<int> list = new List<int>();
   foreach (var item in folderCategoriesIds)
   
       list.AddRange(item.ToList());
   

【问题讨论】:

看看SelectMany():***.com/a/13035259/1064169 【参考方案1】:

您可以使用SelectMany 来展平列表。只需在ToList() 之前添加.SelectMany(x =&gt; x) 就可以了

【讨论】:

以上是关于在 C# 中将 List<IEnumerable<int>> 转换为 List<int> [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中将 XML 字符串解析为 List/DataTable

在 C# 中将 List<IEnumerable<int>> 转换为 List<int> [重复]

如何在 C# 中将 List<object> 转换为 Hashtable?

如何在 C# 中将 List<byte> 转换为 byte[]?

如何在 .NET 6 / C# 10 中将 List<String?> 转换为 List<String>?

如何在 C# 中将 IEnumerable<T> 转换为 List<T>?