C# 如何调用foreach循环C中的变量
我是C语言的新手。我写了一个foreach循环,但是我怎样才能调用循环外的变量呢。谢谢你的帮助 这是我的密码:C# 如何调用foreach循环C中的变量,c#,foreach,C#,Foreach,我是C语言的新手。我写了一个foreach循环,但是我怎样才能调用循环外的变量呢。谢谢你的帮助 这是我的密码: static void Main(string[] args) { IDictionary<string,float> IDico=new Dictionary<string,float>(); IDico.Add("D1",1); IDico.Add("D2",2); IDico.Add("D3",3); string temp
static void Main(string[] args)
{
IDictionary<string,float> IDico=new Dictionary<string,float>();
IDico.Add("D1",1);
IDico.Add("D2",2);
IDico.Add("D3",3);
string tempo="D2";
foreach(var element in IDico.Keys)
{
if(tempo.Contains(element in IDico.Keys)
{
var outPut=IDico[element]
}
}
var call=outPut // How can I call outPut outside the for loop?Because the outPut doesn't exist for this row.
}
这是你的密码
static void Main(string[] args)
{
IDictionary<string,float> IDico=new Dictionary<string,float>();
IDico.Add("D1",1);
IDico.Add("D2",2);
IDico.Add("D3",3);
string tempo="D2";
float outPut = 0.0;
foreach(var element in IDico.Keys)
{
if(tempo.Contains(element))
{
outPut=IDico[element]
}
}
//Do stuff with outPut
}
然而,我认为你可能试图在字典中找到节奏,所以你真的应该这样做:
static void Main(string[] args)
{
IDictionary<string,float> IDico=new Dictionary<string,float>();
IDico.Add("D1",1);
IDico.Add("D2",2);
IDico.Add("D3",3);
string tempo="D2";
float outPut = 0.0;
if(IDico.Contains(tempo))
{
outPut=IDico[tempo];
}
//Do stuff with outPut
}
如果输出可以包含字典中的一个以上元素,请考虑使用和数组或列表。如果要在找到匹配项后停止迭代,请使用中断;在if语句中,以便在找到匹配项后,循环将停止
此外,您还需要在循环外部声明输出,这样它就不会在循环的每次迭代中重新声明自己我还为您修复了contains语句,因为您使用了不正确的语法。在循环外部声明它,并在内部分配它。但是为了做到这一点,您需要使用具体类型而不是var。您的意思是我在循环外部定义float输出,outPut=IDico[element],并且我可以在最后调用?仍然是一个错误:使用未分配的局部变量outPut您必须在创建它时初始化它,float输出=0.0f;“那你就可以用它了。”罗恩·拜尔谢谢你的帮助。你能解释一下IDico.Keys中的iftempo.Containselement部分吗?因为我不明白你为什么要用两次。我仍然有一个错误:使用未分配的局部变量outPutIf如果IDico的某个条目的值为0f,那么这里的输出可能会对它获得的值源不明确:是从初始化还是从IDico的某个条目?最好是宣布浮动?用于输出。然后检查它是否不为空以处理更多内容。更新了我的答案,我不确定从这个问题中可以得到什么。@ZachM。你说得对。版本2.0更好。感谢您的帮助,NICE find,输出仍然在if语句中声明,无法在其外部访问。
static void Main(string[] args)
{
IDictionary<string,float> IDico=new Dictionary<string,float>();
IDico.Add("D1",1);
IDico.Add("D2",2);
IDico.Add("D3",3);
string tempo="D2";
string outPut = string.Empty;
foreach(var element in IDico.Keys)
{
if(tempo.Contains(element))
{
outPut = IDico[element]
}
}
var call = outPut;
}