gpt4 book ai didi

c# - 如何动态使用 Concat 删除空列表

转载 作者:行者123 更新时间:2023-11-30 17:35:55 26 4
gpt4 key购买 nike

我正在将相同类型的列表传递给 json 文件,但如果 json 找到它期望其中有数据的节点,我也没有 我在使用 concat 函数时遇到问题但是列表并不总是包含评估,因此我不需要任何方法来动态构建列表。

 List<Asset> AllAssets = allAssets.Concat(_vheiclesList)
.Concat(_propertyList)
.Concat(_securedLoansAssets)
.Concat(_allSavings)
.Concat(_allPensions)
.Concat(_allOtherAssets)
.ToList();

例如,如果没有属性或储蓄,那么列表连接将如下所示。

List<Asset> AllAssets = allAssets.Concat(_vheiclesList)
.Concat(_securedLoansAssets)
.Concat(_allPensions)
.Concat(_allOtherAssets)
.ToList();

每个列表都是 asset 类型,然后我还需要能够告诉 json 删除它们,所以我需要一种通过 if 语句添加每个列表的方法来检查是否null 然后不要连接它。

最佳答案

您可以使用扩展方法来处理列表的 null 值。例如

    public static class EnumerableExtension
{
public static IEnumerable<TSource> ConcatOrDefault<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second)
{
if (second == null)
return first;
return first.Concat(second);
}
}

然后你可以重写你的语句

List<Asset> AllAssets = allAssets.ConcatOrDefault(_vheiclesList)
.ConcatOrDefault(_propertyList)
.ConcatOrDefault(_securedLoansAssets)
.ConcatOrDefault(_allSavings)
.ConcatOrDefault(_allPensions)
.ConcatOrDefault(_allOtherAssets)
.ToList();

现在 _propertyList_allSavings 等值可能为空。在这种情况下,只返回未改变的序列。

关于c# - 如何动态使用 Concat 删除空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561827/

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