【问题标题】:Merge int's into a single int in C#在 C# 中将 int 合并为单个 int
【发布时间】:2017-07-16 07:46:02
【问题描述】:

我有:

int a = 9;
int b = 7;
int c = 3;

如何合并它们,使其变为 int d = 973; ? 我唯一能想到的是:

string merge = $"{a}{b}{c}";
int d = Int32.Parse(merge);

有没有更有效的方法?

【问题讨论】:

  • d = (a*100)+(b*10)+c; 但也许你应该解释一下你真正想要解决的问题,而不是固定在一个想法上。好像是XY Problem
  • 你可以尝试这样合并:string merge = a + "" + b + c;
  • 我认为你的方式已经足够好了。
  • @zzT OP 已经进行了字符串合并。他要求的是更有效的东西。但我同意史蒂夫的观点。这肯定看起来像一个 XY 问题
  • 好吧,他们给了我 3 个单独的整数 a、b、c,我需要对从 abc 到 111 的每个组合进行几次检查。根据检查结果,我需要加/减/将特定值乘以给定的“特殊”整数。当那个“特殊”整数等于或大于另一个“控制”整数时,我需要停止。

标签: c# merge


【解决方案1】:

您可以使用Linq's Aggregate

var input = new[] { a, b, c };

var number = input.Aggregate((t, c) => t * 10 + c);

这会将总数乘以 10,并为输入序列中的每个数字加上当前数字。

你会反复这样写:

var number = 0;
foreach (var i in input)
{
    number = number * 10 + i;
}
Console.WriteLine(number);

请注意,这两种方法都容易出现整数溢出。

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 2021-11-25
    • 1970-01-01
    • 2018-03-07
    • 2019-01-31
    相关资源
    最近更新 更多