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;
}
所以我通过在两个文本文件中添加无用的行来解决这个问题,然后在变量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;
}