तुम बस का उपयोग कर सकते एक अगर बयान जोड़ें: तो वहाँ कुछ वाक्य रचना जादू मैं उपयोग कर सकते हैं
संपादित है इस मामले में ऑपरेटर (कम से कम, फ़ंक्शन कॉल के बाहर), क्योंकि Foo
में कोई वापसी मूल्य नहीं है। ?:
ऑपरेटर को कुछ का मूल्यांकन करना चाहिए, और कुछ और किसी और को सौंपा जाना चाहिए।
एक अन्य विकल्प है कि डुप्लिकेट समारोह कॉल से छुटकारा पाने चाहते हैं किसी सरणी या पैरामीटर के लिए सूची का उपयोग करने के लिए है:
var parameters = new List<object> { a, b };
if (x == 42)
parameters.Add(c);
Foo("yo", parameters);
और अगर आप वास्तव में वहाँ में ?:
प्राप्त करना चाहता था, इस काम करेगा, भी:
Foo("yo", x == 42 ? new object[] { a, b, c } : new object[] { a, b });
XDocument
/XElement
निर्माता कॉल के बारे में अपने अधिक विशिष्ट प्रश्न के लिए, आप निर्माता कॉल में से एक लंबी श्रृंखला के बजाय Add
कॉल का उपयोग कर सकते हैं। फिर आप उन्हें सशर्त बना सकते हैं। है के रूप में, मुझे लगता है कि तुम भी आप क्या कुछ इस तरह करने से पूछ रहे हैं करने के लिए सक्षम होना चाहिए:
XElement elementPrecedingOptionalElement = new XElement(...);
var xml = new XDocument(....,
new XElement(...),
new XElement(...),
elementPrecedingOptionalElement,
new XElement(...),
new XElement(...)
);
if (x == 42)
elementPrecedingOptionalElement.AddAfterSelf(new XElement(...));
Add
कॉल का उपयोग करते हुए कुछ इस तरह दिखेगा:
XDocument xml = new XDocument();
XElement root = new XElement("Root");
xml.Add(root);
root.Add(new XElement("Item1"));
root.Add(new XElement("Item2"));
if (x == 42)
root.Add(new XElement("Item2.5"));
root.Add(new XElement("Item3"));
root.Add(new XElement("Item4"));
वास्तव में, एक आखिरी यह क्या सवाल जरूरतों के सबसे करीब (यहां तक कि यह करता है, तो ':
var xml = new XDocument(....,
new XElement(...),
new XElement(...),
new XElement(...),
x == 42
? new XElement(...)
: null,
new XElement(...),
new XElement(...)
);
+1 'सूची <>' विकल्प के लिए: संस्करण है कि आपके लिए क्या पूछ रहे हैं के करीब है यह, जो काम करने लगता है जैसा होगा वह "गन्दा" होगा जैसा वह सा है आईडी)। –
यह देखने के लिए मेरा संपादन देखें कि यह मेरे लिए क्यों काम नहीं करता है। पीएस मुझे पता है कि इसे कैसे काम करना है, मैं यह देखने की कोशिश कर रहा हूं कि क्या मैं इसे आसानी से और स्पष्ट रूप से काम कर सकता हूं - विशेष रूप से मैं इरादा स्पष्ट करना चाहता हूं। मैं उपयोग करने के लिए wnat नहीं है?:, यह सिर्फ मेरा पहला प्रयास था (जिसे मैंने तुरंत छोड़ दिया) – pm100
@ pm100 ठीक अपडेट किया गया जवाब –