Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调用foreach循环C中的变量_C#_Foreach - Fatal编程技术网

C# 如何调用foreach循环C中的变量

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

我是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 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;
}