2014-02-26 21 views
0

我有一個for循環打印一組地址。但我想做一個條件,它跳過打印與postalCode-X具有相同值的地址集合。如何打印除C#以外的每個數據行?

那麼我該如何擺脫forloop? 該語言是在C#,.NET框架中。謝謝。

的數據是這樣的:

SET 1 
Street 1 
California 1770 

SET 2 
Street 2 
New Jersey 1990 

SET 3 
Street 3 
Oakland 2000 

輸出與1990年郵編例外:

打印SET1只有SET3。

foreach (Dataset.Row dr in A.Rows) 
     { 
      if (dr.id("1")) 
      { 
       string unit = dr.unit; 
       string streetName = dr.street; 
       string postalCode = dr.postal; 
       content += String.Format("{0}", dr.name); 
       if (showAddress) 
        content += "<br/>" + GenAddr(unit,streetName, postalCode) + "<br/>"; 
      } 
     } 
+2

這將有助於看到你到底用了哪些代碼。 –

+0

感謝您更新您的代碼。爲什麼你有'if(dr.id(「1」))'?我現在認爲它不想打印到控制檯,但是您想要將HTML內容寫入客戶端。什麼是內容? – mason

+0

喜dr.id(「1」)僅僅是一個例子,它實際上是指與A的類型的列然後進入,如果語句。內容將被生成爲word文檔。也可以說它將是一個HTML。 – user2754476

回答

2
//inside the loop 
if(!currentset.PostalCode.Equals("1990")) 
    { 
    Console.WriteLine("Set: "+currentset); 
    } 

一個簡單的if語句你想要做什麼。我可以給你的情況的回答更加個性化的,如果你會更新你的循環,什麼數據類型集等

注意,上面的代碼是不是「逃跑」的循環問題。它只是有選擇地從for循環中打印出集合。下面的代碼使用C#中的continue語句來「轉義」循環中的其餘代碼。

//inside the loop 
if(currentset.PostalCode.Equals("1990") 
{ 
    continue; //the curly braces are unnecessary for a single line in the if statement 
} 
Console.WriteLine("Set: "+currentset); //notice this is after the continue statement 

另一種選擇是有列表,然後remove the sets with Linq你不前,有一個循環,打印出組想要的。

List<set> sets=GetSets(); 
set.RemoveAll(aset => aset.PostalCode.Equals("1990")); 
//now loop through sets 
foreach(set currentset in sets) 
{ 
    Console.WriteLine("Set: "+set); 
} 
0

你也有另一種方式來做到:

//inside the loop 
if(!currentset.PostalCode.Equals("1990")) 
{ 
    Console.WriteLine("Set: "+currentset); 
} 

OR

//inside the loop 
if(currentset.PostalCode.Equals("1990")) 
    continue; 
Console.WriteLine("Set: "+currentset); 
1

或者使用LINQ。

yourList.Where(x=>!x.PostalCode.Equals("1990")).ForEach(Console.WriteLine)