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

时间:2015-08-11 19:47:27

标签: 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 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.

}

2 个答案:

答案 0 :(得分:3)

这是你的代码

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
 }

答案 1 :(得分:0)

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

如果outPut可以包含字典中的多个元素,请考虑使用和数组或列表。如果你想在找到匹配后停止迭代,请使用休息;在if语句中,以便在找到匹配后循环将停止。

此外,您将要在循环外声明outPut,以便它不会在循环的每次迭代中重新声明自己。

我还为你修复了contains语句,以及你使用了不正确的语法。