我遇到了一个我试图通过计算多个数组来解决的问题。
这是场景...
用户将输入他们的卡号,即 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/