यह शायद एक अच्छा विचार नहीं है, लेकिन in C# 6, collection initializers also work when Add()
is an extension method ।
इसका मतलब है आप विस्तार Add()
इस प्रकार लिख सकते हैं:
public static void Add<T>(this List<T> list, T? item) where T : struct
{
if (item.HasValue)
{
list.Add(item.Value);
}
}
और फिर इस कोड को आप क्या चाहते हैं क्या करेंगे:
var list = new List<Guid> { projectId };
ध्यान दें कि यह केवल मूल्य प्रकार के लिए काम करेंगे (क्योंकि T
/T?
भेद) और संदर्भ प्रकारों के लिए इसे काम करने का कोई आसान तरीका नहीं है।
इसके अलावा, मुझे बहुत आश्चर्यजनक रेखा मिल जाएगी, और अधिक संक्षिप्त होना हमेशा बेहतर नहीं होता है। यही कारण है कि मैं वास्तव में इस कोड का उपयोग नहीं करता।
शायद आप सूची रैपिंग और अंदर की स्थिति के साथ जोड़ें (टी) विधि ओवरलोडिंग पर विचार करेंगे। –
MaLiN2223
एक ही कथन में जो शायद आप सबसे अच्छा कर सकते हैं। यदि आप ऐसा करते हैं तो आप नलिकाओं से संग्रह बनाने के लिए एक एक्सटेंशन विधि जोड़ सकते हैं। – Lee
@ एक एक्सटेंशन विधि देखें, वास्तव में एक बुरा विचार की तरह नहीं लगता है। –