मेरे पास यह लूप है:
for (int i = 1; i < 10; i++)
लेकिन इसके बजाय मैं सिर्फ 1,2,4,5 और 7 के लिए i करना चाहूंगा और मैं इसे हार्डकोड करूंगा।
वहाँ एक तरह से मैं एक सरणी की तरह कुछ के साथ यह कर सकता है?
मेरे पास यह लूप है:
for (int i = 1; i < 10; i++)
लेकिन इसके बजाय मैं सिर्फ 1,2,4,5 और 7 के लिए i करना चाहूंगा और मैं इसे हार्डकोड करूंगा।
वहाँ एक तरह से मैं एक सरणी की तरह कुछ के साथ यह कर सकता है?
जवाबों:
आप इस तरह की संख्याएँ देने के लिए एक सरणी का उपयोग कर सकते हैं
int[] loop = new int[] {1,2,4,5,7};
foreach(int i in loop)
Console.WriteLine(i);
या क्या यह इनलाइन है जो मेरी राय में मूल्यों की सूची बढ़ने पर उतना साफ नहीं है
foreach(int i in new int[] {1,2,4,5,7})
Console.WriteLine(i);
intघोषणा को हटा सकते हैं , क्योंकि कंपाइलर सामग्री से यह निर्धारित करेगा।
foreach (int i in new int[] { 1, 2, 4, 5, 7 })
{
}
मूल रूप से यहां उत्तर सही हैं, सिर्फ इसलिए कि आपने लूप के forबजाय स्पष्ट रूप से पूछा foreach:
int[] loop = new int[] { 1, 2, 4, 5, 7 };
for (int i = 0; i< loop.Length; i++)
{
Console.WriteLine(loop[i]);
}
यदि आप विशेष रूप से लूप के लिए चाहते हैं तो इसके साथ जाएं:
var list = new List<int>() { 1, 2, 4, 5, 7 };
for (int i = 0; i < list.Count; i++) // Loop through List with for
{
Console.WriteLine(list[i]);
}
स्पष्ट रूप से सामान्य मामले के लिए सही उत्तर का उपयोग करना है foreachया अनुक्रमित लुकअप का उपयोग करना है जैसा कि अन्य उत्तरों में दिखाया गया है, लेकिन सिर्फ पूर्णता के लिए:
आप उपयोग कर सकते हैं किसी भी एक के भीतर बयान forसशर्त, सहित अभिव्यक्ति,। इसे ध्यान में रखते हुए, एक आवश्यक वृद्धि के लिए सशर्त वेतन वृद्धि या यहां तक कि एक संपूर्ण सशर्त (राज्य मशीन?) का निर्माण करना आसान है :
for (int i = 1; i <= 7; i += (i == 5 || i == 2) ? 2 : 1)
{
Console.Write(i);
}
// Output: 12457
for (int i = 1; i > 0; i = i switch {1=>2, 2=>4, 4=>5, 5=>7, 7=>-1})
{
Console.Write(i);
}
// Output: 12457
या यहां तक कि कुछ वास्तव में मूर्खतापूर्ण एक आत्म अनुक्रमण देखने की तरह:
for (int i = 1; i > 0; i = new []{0,2,4,0,5,7,0,-1}[i])
{
Console.Write(i);
}
// Output: 12457