gpt4 book ai didi

c# - 在 foreach 语句中使用空合并

转载 作者:太空宇宙 更新时间:2023-11-03 17:28:18 26 4
gpt4 key购买 nike

试图弄清楚如何让 null 合并运算符在 foreach 循环中工作。

我正在检查字符串以什么结尾,并基于此将其路由到某个方法。基本上我想说的是......

foreach (String s in strList)
{
if s.EndsWith("d") ?? Method1(s) ?? Method2(s) ?? "Unknown file type";
}

在尝试执行此操作时,您当然会得到“运算符 ?? 不能用于 bool 类型和 string 类型。”我知道还有其他方法可以做到这一点,只是想看看如何使用空合并来完成。

周末愉快

@Richard Ev:当然可以。 Switch, if else, 等等。只是好奇它是怎么回事可以处理

@Jon Skeet:看完你的评论后我很震惊,这太糟糕了!我是基本上对两个文件扩展名感兴趣。如果文件以“abc”结尾例如,发送到方法 1,如果文件以“xyz”结尾,则发送到方法 2。但是如果文件以“hij”的扩展名结尾怎么办...砰,大功告成。

也感谢 Brian 和 GenericTypeTea 的深思熟虑

我满足于称其为关闭。

最佳答案

看起来您想使用普通的三元运算符,而不是空合并。像这样的东西:

(s.EndsWith("d") ? Method1(s) : Method2(s)) ?? "Unknown file type";

这相当于:

string result;
if (s.EndsWith("d"))
result = Method1(s);
else
result = Method2(s);
if (result == null)
result = "Unknown file type";
return result;

关于c# - 在 foreach 语句中使用空合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3788352/

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