संपादित करें: के रूप में एक टिप्पणीकार ने बताया, मेरे मूल कार्यान्वयन काम नहीं किया यह अनिवार्य रूप से व्यक्त करने के लिए एक अधिक संक्षिप्त तरीका है। यह संस्करण काम करता है लेकिन लूप के आस-पास स्थित गैर-स्लिम है।
यदि आप एक विस्तार विधि बनाने के लिए तैयार हैं, तो आप इस
public static T[] SetAllValues<T>(this T[] array, T value) where T : struct
{
for (int i = 0; i < array.Length; i++)
array[i] = value;
return array;
}
कोशिश करते हैं और उसके बाद इस
bool[] tenTrueBoolsInAnArray = new bool[10].SetAllValues(true);
एक विकल्प के रूप की तरह यह आह्वान है, अगर आप के साथ खुश हैं सकता है एक कक्षा लटक रही है, आप इस तरह की कोशिश कर सकते हैं
public static class ArrayOf<T>
{
public static T[] Create(int size, T initialValue)
{
T[] array = (T[])Array.CreateInstance(typeof(T), size);
for (int i = 0; i < array.Length; i++)
array[i] = initialValue;
return array;
}
}
जो आप हालांकि मैं lurv विस्तार तरीकों बहुत सारे और बहुत करना सामान्य रूप में की तरह
bool[] tenTrueBoolsInAnArray = ArrayOf<bool>.Create(10, true);
सुनिश्चित नहीं हैं कि मैं पसंद आह्वान कर सकते हैं,।
स्रोत
2008-09-26 00:46:02
अब यह सिर्फ चालाक है! – Rob
मुझे लगता है कि निगेल का प्रदर्शन नोट उल्लेख करता है - http://stackoverflow.com/questions/136836/c-array-initialization-with-non-default-value/1051227#1051227 – CrimsonX
मैं विश्वास नहीं कर सकता कि लोगों को किसी चीज़ के लिए अपवर्तित करना है तो 'अजीब' (मेरी राय में) और एक सरणी भरने के रूप में सरल के रूप में एक ऑपरेशन के लिए महंगा है। 'var arr = new type [10]; के लिए (int i = 0; i
Aidiakapi