moe*_*moe 2 c# foreach switch-statement
我想用switch语句来循环但是得到这个错误:"对于每个语句都不能对int类型的变量进行操作"
DataRow row = MyData.Rows[0];
int temp = Convert.ToInt32(row["Category"]);
foreach (int v in temp)
{
switch (temp)
{
case "1":
lblCategory.Text = temp + " - Complete.";
break;
case "2":
lblCategory.Text = temp + " - Not Complete";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,我正在根据你的反馈更新我的代码,但有最后一个问题,我在我的数据集合中有一个名为Category的列,它有1,2,3等值,所以这就是为什么我的意思是当我说案例"1" :
var temp = MyData.Rows;
foreach (int v in temp)
{
switch (v.Category)
{
case "1":
lblCategory.Text += v + " - Complete.\n";
break;
case "2":
lblCategory.Text += v + " - Not Complete\n";
break;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要有一组行来循环.你为一个元素写了一个循环.
要使以下行工作:
foreach (int v in temp) ...
Run Code Online (Sandbox Code Playgroud)
您的temp变量必须是整数的集合(例如IEnumerable<int>或List<int>或int[]).
试着写:
var temp = MyData.Rows;
Run Code Online (Sandbox Code Playgroud)
代替
DataRow row = MyData.Rows[0];
int temp = Convert.ToInt32(row["Category"]);
Run Code Online (Sandbox Code Playgroud)
在你的foreach循环之前,像这样:
var temp = MyData.Rows;
foreach (int v in temp)
{
switch (v)
{
case 1:
lblCategory.Text += v + " - Complete.\n";
break;
case 2:
lblCategory.Text += v + " - Not Complete\n";
break;
}
}
Run Code Online (Sandbox Code Playgroud)