c# Xamarin Android的字符串+=不工作

本文关键字:工作 字符串 Xamarin Android | 更新日期: 2023-09-27 18:05:18

所以我已经在一个非xamarin项目中使用这段代码一个月了,它工作得很好,把它转移到xamarin项目,现在它拒绝工作。从故障排除我可以看出它的"菜单=菜单+文本[num] +";",这不起作用(它不添加字符串,因为我想要它,它只是离开字符串作为"顺序",就像它被设置为)另外,如果我做"num - 1"从数组中获取字符串,它的工作:/。这是xamarin的bug还是我的代码不好?

 public string menuEncrypt(string[] input, MainActivity ac)
    {
        //Stream Reader to String[]
        StreamReader mc = new StreamReader(ac.Assets.Open("Menu_Code.txt"));
        StreamReader mt = new StreamReader(ac.Assets.Open("Menu_Text.txt"));
        string[] code = streamToArry(mc);
        string[] text = streamToArry(mt);

        //string[] code = File.ReadAllLines(@"JittersApp/Droid/Assets/Menu Code.txt");
        //string[] text = File.ReadAllLines(@"JittersApp/Droid/Assets/Menu Text.txt");
        int codemax = code.Length;
        int current = 0;
        int im = input.Length;
        string menu = "oder ";
        while (true)
        {
            if (current < codemax)
            {
                if (current < im)
                {
                    if (text.Contains(input[current]))
                    {
                        int num = 0;
                        while (true)
                        {
                            string item = input[current];
                            if (text[num].Equals(item))
                            {
                                menu = menu + text[num] + " ";
                                break;
                            }
                            else
                            {
                                num++;
                            }
                        }
                    }
                    current++;
                }
                else
                {
                    break;
                }
            }
            else
            {
                break;
            }
        }
        new AlertDialog.Builder(ac)
        .SetMessage(menu)
        .Show();
        return menu;
    }

c# Xamarin Android的字符串+=不工作

所以我通过在两个文本文件中添加无用的行来解决这个问题,然后在变量num中添加+ 1,这是代码:)

 public string menuEncrypt(string[] input, MainActivity ac)
    {
        //Stream Reader to String[]
        StreamReader mc = new StreamReader(ac.Assets.Open("Menu_Code.txt"));
        StreamReader mt = new StreamReader(ac.Assets.Open("Menu_Text.txt"));
        string[] code = streamToArry(mc);
        string[] text = streamToArry(mt);

        //string[] code = File.ReadAllLines(@"JittersApp/Droid/Assets/Menu Code.txt");
        //string[] text = File.ReadAllLines(@"JittersApp/Droid/Assets/Menu Text.txt");
        int codemax = code.Length;
        int current = 0;
        int im = input.Length;
        string menu = "oder ";
        while (true)
        {
            if (current < codemax)
            {
                if (current < im)
                {
                    if (text.Contains(input[current]))
                    {
                        int num = 0;
                        while (true)
                        {
                            string item = input[current];
                            if (text[num + 1].Equals(item))
                            {
                                menu = menu + code[num + 1] + " ";
                                break;
                            }
                            else
                            {
                                num++;
                            }
                        }
                    }
                    current++;
                }
                else
                {
                    break;
                }
            }
            else
            {
                break;
            }
        }
        new AlertDialog.Builder(ac)
        .SetMessage(menu)
        .Show();
        return menu;
    }