You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Linq从对象列表的列表属性中提取唯一pIds列表

获取唯一pIds集合的解决方案

你需要用SelectMany替代Select来扁平化嵌套的列表,再结合Distinct去重,就能得到目标结果。

正确代码示例:

var pIds = oldList.Images.SelectMany(img => img.pIds)
                         .Distinct()
                         .ToList();

代码说明:

  • SelectMany:将每个图片对象中的pIds列表展开,把嵌套的List<string>序列转换为单一的string元素序列,解决了你之前得到"列表的列表"的问题。
  • Distinct():自动移除序列中的重复ID,只保留唯一值。
  • ToList():将最终处理后的序列转换为List<string>类型,符合你需要的结果格式。

另外注意:你原代码里写的是p.Ids,但你的数据结构中属性名是pIds,要确保代码里的属性名和实际数据结构一致,避免拼写错误。

执行上述代码后,得到的pIds就是["id1","id2"],完全符合你的需求。

内容的提问来源于stack exchange,提问作者sapter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:46:07