अपनी खुद की विस्तार विधि जोड़ें। उदाहरण के लिए:
public static class Extension
{
public static T FirstOrDefault(this IEnumerable<T> sequence, T defaultValue)
{
return sequence.Any() ? sequence.First() : defaultValue;
}
}
दायरे में उस वर्ग के साथ
, आप कह सकते हैं:
var vote = (from vote in db.Vote where
vote.Voter.Id == user.Id
select v).FirstOrDefault(yourDefaultValue);
बेशक
, अपने विधि भी, एक अधिभार कि रिटर्न डिफ़ॉल्ट (टी) हो सकता है कि अगर था क्या तुम कहाँ खोज रहे हैं बिल्ट-इन एक्सटेंशन क्लास में पहले से ही एक डिफ़ॉल्ट IfEmpty एक्सटेंशन विधि परिभाषित की गई है, इसलिए मैंने "FirstOrDefault" उदाहरण में विधि का नाम दिया, जो एक बेहतर फिट जैसा प्रतीत होता है।
एफवाईआई, यह आपके मूल प्रश्न को पूरा नहीं करता है। आपने स्पष्ट रूप से एक डिफ़ॉल्ट मान वापस करने के लिए कहा है, न कि नया मान न बनाएं यदि यह पहले से मौजूद नहीं है। (यह ठीक कोड है, जो आपने पूछा वह नहीं करता है।) – BenSwayne