以下代码中有两个for循环。我希望在执行for循环时具有以下值。
有可能吗?如果可能的话,请告诉我如何做的方式。谢谢。
for (int n = 1; n < dates.Count - 1; n++)
{
for (int o = n; o < n + 2; o++)
{
TravelPlanTouristAttractionNWeatherLabel.Text += "<b><ins>Place Number </ins></b>" + "<b><ins>" + o + "</b></ins>" + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Place Name: </b>" + touristAttractionName[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Address: </b>" + touristAttractionFormattedAddress[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Phone Number: </b>" + touristAttractionFormattedPhoneNumber[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>International Phone Number: </b>" + touristAttractionInternationalPhoneNumber[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Website: </b>" + touristAttractionWebsite[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b><ins>Opening Hours</ins></b>" + "<br/>";
for (int p = 0; p < 7; p++)
{
TravelPlanTouristAttractionNWeatherLabel.Text += touristAttractionOpeningHours[o, p] + "<br/>";
}
TravelPlanTouristAttractionNWeatherLabel.Text += "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b><ins>Rating & Review</ins></b>" + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Overall Rating: </b>" + touristAttractionRating[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Author: </b>" + touristAttractionReviewAuthor[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Rating: </b>" + touristAttractionReviewRating[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<b>Review: </b>" + touristAttractionReviewText[o] + "<br/>";
TravelPlanTouristAttractionNWeatherLabel.Text += "<br/>";
}
}
答案 0 :(得分:1)
根据您的示例,o
在2*n-2 to 2*n-1
范围内,因此您可以使用类似的内容:
for (int n = 1; n < dates.Count - 1; n++){
for (int o = 2*n-2; o < 2*n; o++) {
//Do your magic here
}
}
答案 1 :(得分:1)
尝试一下-
for (int n = 0; n < dates.Count -1, n++)
{
for (int o = (n-1)*2; o < 2n; o++)
{
//Add your logic here :)
}
}
答案 2 :(得分:1)
如我所见,您的要求中有一个模式。按照该模式,o将始终按顺序递增。而n将从1递增到日期的计数。
所以基本上您可以在不计算n上任何公式的情况下得出o。
(请确保您是否要从n =其他数字开始循环,然后您希望o应保持n的初始值,但不会。但是我看不到视您的问题而定)
这样做,
int o = 0;
for (int n = 1; n < dates.Count - 1; n++)
{
....
for(int k = 0; k < 2; k++)
{
// this loop should be running for two iterations only.
//even if loop is on k, use o
o++;
}
}
但是如果您想建立关系。 o的循环刚好在2xn的值之前结束,因此o的循环应运行2次。
因此相对循环可以从
开始o =(2 * n)-2至o <2 * n。
for(int o = (2*n) - 2 ; o < 2*n; o++)
答案 3 :(得分:-1)
您要
当n = 1时,o = 0,1
当n = 2时,o = 2,3
当n = 3时,o = 4,5
当n = 4时,o = 6,7
所以尝试:
for (int n = 1; n < dates.Count - 1; n++)
{
int o_start = 0; // covers n = 1
if(n == 2)
o_start = 2;
if(n == 3)
o_start = 4;
if(n == 4)
o_start = 6;
for (int o = o_start; o < o_start + 2; o++)
{
// execute o-loop
}
}
或者,您可以定义一个包含索引的数组,然后通过[n]访问它们。