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

C#:出现特定Error类型时修改Tuple中的bool值

问题分析与修正建议

你的现有代码存在几个关键问题,导致逻辑完全无法生效:

  • 变量初始化错误:TimeoutException err = null 把变量初始化为null,后续err is TimeoutException的判断永远为false,永远走else分支。
  • 语法错误:第一行末尾缺少分号,if语句后没有包裹代码块的大括号,导致后续else的大括号不匹配,编译会报错。
  • 逻辑偏差:你没有实际检查返回的errors或validErr列表中是否存在TimeoutException类型的错误,而是凭空定义了一个null变量做判断。

正确实现方式

假设你需要检查的是errors列表中是否包含TimeoutException类型的错误,可以用LINQ快速判断,然后简化返回逻辑:

// 判断errors列表中是否存在TimeoutException类型的错误
var isTimeout = errors.Any(error => error is TimeoutException);

return new Tuple<bool, List<Error>, List<Error>>(isTimeout, errors, validErr);

如果Error是Exception的子类,也可以用更精准的OfType方法:

var isTimeout = errors.OfType<TimeoutException>().Any();

如果需要检查的是validErr列表,只需要把上述代码中的errors替换为validErr即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:50:32