gpt4 book ai didi

c# - lambda Select 表达式中的 AddRange/concat 功能

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:29 25 4
gpt4 key购买 nike

class Foo
{
int PrimaryItem;
bool HasOtherItems;
IEnumerable<int> OtherItems;
}

List<Foo> fooList;

如何获取在 fooList 中引用的所有项目 ID 的列表?

var items = fooList
.Select(
/*
f => f.PrimaryItem;
if (f.HasOtherItems)
AddRange(f => f.OtherItems)
*/
).Distinct();

最佳答案

使用 SelectMany 并让它返回 PrimaryItemOtherItems(如果存在)的串联列表:

var result = fooList
.SelectMany(f => (new[] { f.PrimaryItem })
.Concat(f.HasOtherItems ? f.OtherItems : new int[] { }))
.Distinct();

关于c# - lambda Select 表达式中的 AddRange/concat 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3923155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com