C#程序,数组

时间:2017-12-25 16:18:09

标签: c# .net

我正在努力制作侮辱计划。我想使用数组来存储从 static void with(Activity activity, ArrayList<String> imageFile,String app){ ArrayList<Uri> imagesUri=new ArrayList<>(); for (String i:imageFile) imagesUri.add(FileProvider.getUriForFile( activity, FILES_AUTHORITY, new File(i))); Intent shareIntent = ShareCompat.IntentBuilder.from(activity).getIntent(); shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE); shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM,imagesUri); shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); activity.startActivity(shareIntent); } a的整个字母表。我使用了z所以当用户按下字母if statement时会发生一些事情。并且,如果他按下任何东西而不是一封信,那么就会发生其他事我现在被困住了。

a

3 个答案:

答案 0 :(得分:1)

不进行迭代,只需使用以下表达式:

if (array1.Contains(keyInfo.KeyChar)) // a letter has been typed...
{
    // ...
}
else
{
    // ...
}

答案 1 :(得分:-1)

您需要遍历数组并检查是否有任何符合用户输入内容的字符,但一个简单的解决方案是执行以下操作:

if (array1.Any(c => c == keyInfo.KeyChar)){ ... }
else { ... }

答案 2 :(得分:-1)

我假设当你说“使数组工作”时,你的意思是“我想测试开头输入的字母是否在数组中”。

char[] array1 = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };

if (array1.Contains(keyInfo.KeyChar)) 
{ 
    // user typed a letter
} 
else 
{
    // user typed not a letter
}

我试图向您展示如何检查C#中是否存在某个数组。但是,由于您的目标是检查字符是否是字母,因此更好:Char.IsAlpha()documentation here)(以及IsDigit()documentation)。

在这种情况下,您根本不需要初始数组:

if (Char.IsAlpha(keyInfo.KeyChar)) 
{
    // character is a letter (will work for both lowercase or uppercase)
}
else if (Char.IsDigit(keyInfo.KeyChar))
{
    // character is a digit
}
else 
{
    // char is neither a digit or a letter
}

最后,另一种不涉及数组并且与初始方法完全等效的方法(感谢评论中的@JeppeStigNielsen):

if (keyInfo.KeyChar >= 'a' && keyInfo.KeyChar <= 'z') 
{
    // character is a lowercase letter from English-alphabet 
}
else if (keyInfo.KeyChar >= '0' && keyInfo.KeyChar <= '9')
{
    // character is a digit
}
else 
{
    // char is neither a digit or a letter
}

这是有效的,因为char实际上是相应字符的代码编号,而字母(或数字)的代码是连续值。 see here for the list of Unicode codes