c# - 有没有办法在 Switch 表达式中跳过或继续,或者每个分支都需要返回一些东西?

只有当 switch 表达式找到类似这样的内容时,我才想添加到列表中:

List<drivedType> derivedObjects = new()

derivedObjects.Add(baseObject switch
{
    derivedType d when d.field != 1 => d,
    _ => // Here I would put somthing like "continue" but it's not accepted
});

任何类似的可能吗?

最佳答案

尚不清楚这段代码试图做什么。它可能是尝试按类型过滤对象列表的代码片段。它可能是尝试根据类型插入单个对象。或者完全不同的东西。

如果打算按类型过滤对象列表,可以使用 LINQ 来过滤创建最终列表:

var derivedObjects= baseObjects.OfType<DerivedObject>()
                               .Where(d=>d.Field !=1)
                               .ToList();

如果打算插入单个对象:

if(baseObject is DerivedType d && d.Field !=1)
{
    derivedObjects.Add(d);
}

https://stackoverflow.com/questions/65585621/

相关文章:

c++ - 如何在 QPixmap 中旋转照片?

c++ - 找不到 Glog(缺少 : GLOG_INCLUDE_DIR GLOG_LIBRARY)

python - 如果删除包含另一个对象的对象会怎样?

c# - 将 RestSharp 用于以下代码的内置替代方法是什么?

arrays - 加起来等于一个数的组合 - Julia lang

deep-learning - 如何通过一次操作合并两个 torch.utils.data 数据加载

java - 在 Clojure 中使用 JSoup 解析字符串

powershell - 无法注册 PS 图库

javascript - 如果 "any"不能在 Nest.js 中使用,模式中的字段类型应该是什么

awk - 将 awk 应用于除第一行以外的所有内容