【问题标题】:Foreach Loop Checking For a Specific Character C#Foreach 循环检查特定字符 C#
【发布时间】:2015-02-12 02:07:38
【问题描述】:

这是一个非常基本的问题,但无论出于何种原因,我都无法弄清楚。 程序正在返回

错误 1 ​​类型和标识符在 foreach 语句中都是必需的

int i = 0;
char g = '.';
char s1 = '!';
char s2 = '?';

foreach(g in textBox1.Text)
{
   i++;
}

我知道我重复了一个变量,我试图让 g 被定义为例如解释我将把代码放在下面的日常语言中

foreach(Period in textBox1.Text)
{
   i++;
}

//回答文本框1中有3句话

【问题讨论】:

  • 你需要一个你正在迭代的变量的类型.. foreach(var c in textBox1.Text) { i++; }
  • "类型和标识符都是必需的" g 是一个标识符,但你没有给它一个类型。
  • 如果只检查String 是否包含字符,则应使用Contains() 扩展方法或IndexOf 方法而不是for 循环。见stackoverflow.com/questions/8879774/…

标签: c# foreach character


【解决方案1】:
foreach(g in textBox1.Text)

你需要定义g的类型

foreach(char g in textBox1.Text)

而且您还错误地使用了变量 g 两次,foreach 必须包含类型,因此其中一个 g 必须更改其名称

【讨论】:

  • 这也可以foreach(dynamic g in ListOfUnkownTypes){ DoBlahWith(g);}
  • @THBBFT 请不要那样做。你有美丽的var
  • @YoryeNathan 我在日常工作中无法使用dynamic ...我想我会在这里尝试一下 :)
  • @YoryeNathan 另外var 要求数组都是相同的对象类型,dynamic 意味着我可以拥有任何东西
  • @THBBFT 确实,正如ListOfUnkownTypes 的名字所暗示的那样。我不记得我实际使用过动态的任何情况。
【解决方案2】:

foreach 循环的语法表明您必须在 foreach 循环中声明变量类型。看看 MSDN implementation。你有两个选择:

答:

foreach(var c in textBox1.Text)
{
     // Boop.
}

乙:

foreach(char c in textBox1.Text)
{
     // Boop.
}

还回答了hereherehere

最后,这里有一个更好的初始化字符的方法:

char c = '\0';

这是ASCII table 中的空值。

【讨论】:

    猜你喜欢
    • 2016-05-18
    • 2022-11-11
    • 2021-12-12
    • 2012-07-28
    • 2014-01-18
    • 1970-01-01
    • 2013-10-21
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多