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

C# 基于双列表动态实现if判断 无需新增else if分支

动态匹配标题与对应URI的无分支实现

实现思路

你之前推测的用循环替代硬编码if-else的方向完全可行。因为titleList和uriList是按同索引一一对应的存储关系,只需要遍历所有存储的标题做匹配,命中后取同索引的URI调用YTPlayer方法即可,后续新增条目时只要往两个列表里追加对应内容,完全不需要修改匹配逻辑的代码。

替换原硬编码分支的参考代码

保留原有两个列表的声明不变:

private List<string> uriList = new List<string>();
private List<string> titleList = new List<string>();

将原来堆叠的if/else if分支整体替换为循环匹配逻辑即可:

bool isMatched = false;
// 按索引遍历所有标题
for (int i = 0; i < titleList.Count; i++)
{
    // 匹配到对应文本
    if (item.Text == titleList[i])
    {
        // 取同索引的URI执行方法
        YTPlayer(uriList[i]);
        isMatched = true;
        // 命中后直接跳出循环,避免无效判断
        break;
    }
}
// 原else分支的兜底逻辑可以写在这里
if (!isMatched)
{
    // 未匹配到任何标题时的原有逻辑
}

补充说明:如果倾向使用foreach遍历,需要额外维护一个计数变量同步跟踪当前遍历的索引值,才能正确取到uriList中的对应内容;相比之下带索引的for循环写法更简洁,也不容易因为索引错位引发匹配错误。

额外优化提示:长期维护两个并行列表容易出现索引错位问题(比如单独删除某条标题却忘记删除同位置的URI,会造成映射关系错乱)。如果后续条目量较大,可以直接改用Dictionary<string, string>以标题为键、URI为值存储映射关系,匹配时直接通过TryGetValue取值,连循环遍历的步骤都可以省略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 02:15:04