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

如何用C#的if语句筛选并合并符合条件的列表?

解决方案

没问题,我来帮你搞定这个合并符合条件列表的需求!其实你提到的AddRange完全可以实现,可能是之前的写法有小问题,下面给你两种可行的实现方式:

基础条件判断写法

先初始化一个空的结果列表,然后逐个检查每个列表的条件,符合要求就把它的元素添加到结果里:

// 替换T为你的列表实际元素类型,比如string、自定义实体类等
var combinedDisplayList = new List<T>();

// 检查garden列表是否符合条件,符合则合并
if (gardenvlist.Count() == days)
{
    combinedDisplayList.AddRange(gardenvlist);
}

// 检查ocean列表
if (oceanvlist.Count() == days)
{
    combinedDisplayList.AddRange(oceanvlist);
}

// 检查city列表
if (cityvlist.Count() == days)
{
    combinedDisplayList.AddRange(cityvlist);
}

这种写法逻辑清晰,容易理解每一步的操作,适合需要明确控制流程的场景。

简洁LINQ写法

如果想让代码更紧凑,可以用LINQ的Where和SelectMany来实现,一步完成筛选和合并:

// 把所有待检查的列表放到一个集合里
var allCandidateLists = new[] { gardenvlist, oceanvlist, cityvlist };

// 筛选出符合条件的列表,然后展开合并成一个新列表
var combinedDisplayList = allCandidateLists
    .Where(list => list.Count() == days)
    .SelectMany(list => list)
    .ToList();

这种写法更简洁,后续如果需要添加更多待检查列表,只需要在数组里新增元素即可,不需要重复写if判断。

需要注意的是,要确保三个列表的元素类型一致,这样AddRange或者LINQ合并才不会出现类型错误。如果类型不同,你可能需要先统一类型(比如转成共同的基类或接口)再进行合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:15:32