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

如何在C#中实现多变量同时赋值?求Python等价写法

Python风格多变量同时赋值的C#等价实现

哈哈,这个问题我太懂了!你在Python里用的那种a, b = b, a + b的“同时赋值”——也就是先计算右边所有表达式的值,再一次性赋值给左边变量,避免中间值被覆盖——在C#里其实也有对应的实现,分两种情况给你讲:

1. 最接近Python写法:C# 7.0+的元组解构

从C# 7.0开始,语言支持元组解构,这完全就是Python那种写法的等价实现,代码几乎一模一样:

(a, b) = (b, a + b);

原理和Python完全一致:右边会先计算出(b, a + b)这个元组的所有值(此时用的是赋值前的a和b),然后把这两个值分别赋值给左边的a和b,完全不会出现中间值被覆盖的问题。

举个实际例子,比如用这个写法生成斐波那契数列:

int a = 0, b = 1;
for (int i = 0; i < 10; i++)
{
    Console.WriteLine(a);
    (a, b) = (b, a + b);
}

运行结果和Python里用同样逻辑写的代码完全一致。

2. 兼容老版本C#:临时变量法

如果你的项目还在使用C# 7.0之前的版本,那就只能用传统的临时变量过渡了,本质是把原来的a值先存起来,再依次赋值:

// 先保存原始的a值
int originalA = a;
// 把b的值赋给a
a = b;
// 用原始a值加当前b值(也就是原来的b)赋给b
b = originalA + b;

这种写法虽然不如元组解构简洁,但逻辑是完全等价的,所有C#版本都支持。

总结一下:如果能用到C# 7.0及以上,元组解构是最优解,写法和Python几乎一样;老版本就用临时变量搞定~

内容的提问来源于stack exchange,提问作者N.Kewitsch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:49:50