我有 C# 代碼:
string[] names = new [] { "a", "b", "c" };
int[] vals = new[] { 5, 10, 15 };
r = "";
for( int i = 0; i < names.Length; i )
r = names[i] ": " vals[i] " ";
在python中我可以寫oneliner
r = " ".join( [ names[i] ":" str(vals[i]) for i in range(len(names)) ] )
我怎樣才能在 C# 中做到這一點?
uj5u.com熱心網友回復:
我會對Python 代碼采取稍微不同的方法 - 我會使用LINQ“zip”運算子來生成您想要連接在一起的字串序列,然后使用string.Join連接它們:
string result = string.Join(" ", names.Zip(values, (n, v) => $"{n}:{v}");
所以在那個范圍內:
- 該
names.Zip(values, <something>)部件基于將“某物”應用于來自names和 的每對值來生成一系列值values。 - 該
(n, v) => $"{n}:{v}"部分采用名稱和值,并將它們的格式設定為名稱:值。 - 該
string.Join(" ", <sequence>)部分將序列元素與每對值之間的空格連接在一起。
請注意,與原始 C# 代碼不同,這不會以尾隨空格結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/360034.html
上一篇:使用automapper將屬性值設定為與其他2個組合
下一篇:從兩個不同的物件填充DTO
