C# 如何从输入字段中提取字符串并使用它来计算数组的和?

C# 如何从输入字段中提取字符串并使用它来计算数组的和?,c#,C#,我正在使用Unity3D开发我的应用程序,我正在尝试从输入字段中获取用户输入字符串,然后使用该字符串通过应用变量值来计算总和,但无法开始工作。我有这个 int B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U; int characterLength = 0; int numberLength = 0; List<int> fomulaList = new List<int>(); List<i

我正在使用Unity3D开发我的应用程序,我正在尝试从输入字段中获取用户输入字符串,然后使用该字符串通过应用变量值来计算总和,但无法开始工作。我有这个

int B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U;

int characterLength = 0;
int numberLength = 0;

List<int> fomulaList = new List<int>();
List<int> numberList = new List<int>();

foreach (char c in charactersField.text)
{
    characterLength++;
    fomulaList.Add(c);

    Debug.Log(c);
 }

formulaArray = fomulaList.ToArray();

Debug.Log("Formula Length: " + formulaArray.Length + " " + formulaArray[0].ToString("D1") + " " + formulaArray[1].ToString("D1"));
intb、C、D、E、F、G、H、I、J、K、L、M、N、O、P、Q、R、S、T、U;
int characterLength=0;
整数长度=0;
List fomulaList=新列表();
列表编号列表=新列表();
foreach(charactersField.text中的字符c)
{
characterLength++;
增加(c);
调试日志(c);
}
formulaArray=fomulaList.ToArray();
Debug.Log(“公式长度:”+formulaArray.Length+“”+formulaArray[0]。ToString(“D1”)+“”+formulaArray[1]。ToString(“D1”);
比如说:我输入了BC,当我打印出调试日志时,我得到了

公式长度:26667

哪一个好

foreach (char c in numbersField.text)
{
    numberLength++;

    Debug.Log(c);
}

for (int i = 0; i < winningNumberArray.Length; i++)
{
    B = winningNumberArray[i] / 100000;                 //100000
    C = (winningNumberArray[i] % 100000) / 10000;       //10000
    D = (winningNumberArray[i] % 10000) / 1000;         //1000
    E = (winningNumberArray[i] % 1000) / 100;           //100
    F = (winningNumberArray[i] % 100) / 10;             //10
    G = winningNumberArray[i] % 10;                     //1

    H = twoNumberArray[i] / 10;                         //10
    I = twoNumberArray[i] % 10;                         //1

    J = firstThreeNumberArray[i] / 100;                 //100
    K = (firstThreeNumberArray[i] % 100) / 10;          //10
    L = firstThreeNumberArray[i] % 10;                  //1

    M = secondThreeNumberArray[i] / 100;                //100
    N = (secondThreeNumberArray[i] % 100) / 10;         //10
    O = secondThreeNumberArray[i] % 10;                 //1

    P = thirdThreeNumberArray[i] / 100;                 //100
    Q = (thirdThreeNumberArray[i] % 100) / 10;          //10
    R = thirdThreeNumberArray[i] % 10;                  //1

    S = fourthThreeNumberArray[i] / 100;                //100
    T = (fourthThreeNumberArray[i] % 100) / 10;         //10
    U = fourthThreeNumberArray[i] % 10;                 //1

    int sum = formulaArray.Sum();

    Debug.Log("Sum: " + sum.ToString());
foreach(numbersField.text中的字符c)
{
numberLength++;
调试日志(c);
}
for(int i=0;i
但是当我打印出我得到的

总数:133

在我看来,B和C的值不是来自

B=winningNumberArray[i]/100000;
C=(winningNumberArray[i]%100000)/10000


如何解决此问题?

问题可能是您将
字符
与变量
B
混淆。尽管有相似之处,但它们完全不相关

听起来你要做的是接受用户输入,然后根据用户输入得到一个特定的值

在您的情况下,您需要:

Dictionary<char,int>
字典

其中
char
是键(例如
'A'
'B'
),而
int
是当前添加到
A
B
变量中的值。

在我看来,B和C的值不是来自B=winningNumberArray[i]/100000;C=(winningNumberArray[i]%100000)/10000;
它们是,在代码中。你的问题在其他地方。B和C与总和有什么关系?我在公式数组中没有看到它们。比如公式数组={B,C},那么总和应该是B+C,B和C的值应该分配给winningNumberArray[I]/100000和(winningNumberArray[I]%100000)/10000.@SuphavanhMahathirash int是值类型,如果将它们放入数组并更改它们(而不是数组项)数组项不会更新您是否可以添加缺少的代码以获得最小且可验证的示例?WinningNumberRay
来自何处?此外,B、C等被定义为int,因此当您添加WinningNumberRay[i]/100000
时,结果将转换为int,如果“WinningNumberRay[i],则结果可能为0“<100000使用字典就可以了。谢谢!