c# - foreach计算多个数组

标签 c# arrays foreach

我遇到了一个我试图通过计算多个数组来解决的问题。

这是场景...

用户将输入他们的卡号,即 1234,然后我需要它以 1,2,1,2 的顺序将存储在另一个数组中的每个数字相乘。

所以会按照1 * 1、2 * 2、3 * 1、4 * 2等计算

我已经尝试了几种不同的方法来在单个 foreach 循环中计算这两个数组,但是我运气不好,因为我返回的是重复项,所以我想看看是否有办法将两个数组组合成单个 foreach 循环?

我能够打印数据,所以现在我只是看看如何将它们组合在一起。这是我到目前为止所拥有的...

class Program
{
    static void Main(string[] args)
    {
       Console.WriteLine("Enter your Card Number");
       char[] card = Console.ReadLine().ToCharArray();
       int[] card_m = { 1,2,1,2 };

       foreach (char c in card)
       {
           int number = (int)char.GetNumericValue(c);
           Console.WriteLine("Converted Number: {0}", number);
       }

       foreach (int m in card_m)
           Console.WriteLine("Card Number Multiplier: {0}", m);

       Console.Read();
    }
}

最佳答案

对于任何长度的卡号,您只需使用Aggregate() 计算每个数字的值,然后将它们相加。

int coefficient = 2;
chksum =  input.Aggregate(0, (sum, ch) => sum + (ch - '0') * (coefficient ^= 3));

关于c# - foreach计算多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12845433/

相关文章:

c# - MySqlClient.NativeDriver 中的 NullReferenceException

c# - 如何查找RabbitMQ连接字符串

c# - 在 ASP.Net MVC 3 中绘制图表

java - 类型安全 : The expression of type Map[] needs unchecked conversion to conform to Map<String, 对象>[]

c# - EF - 分离对象的持久性无知 - 最佳实践

java - 使用 Java 访问对象数组中的数据

c - 动态分配的二维数组未初始化

C# Foreach 更改某些对象属性?

java - 此代码是否线程安全,使用 Java 8 Lambdas - stream.forEach

perl - foreach (<$IN>) 是否会读取文件?