मुझे पहले क्या पूछा जाना चाहिए था। । ।
आप उन्हें हल करने के बाद क्या करना चाहते हैं?
इसका उत्तर संभावित समाधान पर बड़ा प्रभाव डाल सकता है।
यदि उत्तर जैसा कुछ है तो मुझे की तिथियों की एक सूची प्रदर्शित करने की आवश्यकता है, जहां आपको केवल तारीखों की आवश्यकता है। यदि ऐसा है तो आपको दो सूचियों को मर्ज करने की आवश्यकता नहीं है, आप केवल आदेशित तिथियों का अनुक्रम प्राप्त कर सकते हैं और इसका उपयोग कर सकते हैं।
var orderedDates = networks.Select(n => n.NetworkingDate)
.Union(privateNetworks.Select(n => n.DateCreation))
.OrderBy(date => date);
अगर जवाब मैं दिनांक उस वस्तु की पहचान के लिए लिंक दिखा लिंक की एक सूची प्रदर्शित करने के लिए की जरूरत है, और कुछ वस्तु के प्रकार की पहचान करना है, तो आप कुछ के साथ दूर हो सकता है बहुत उपरोक्त की तरह, एक अज्ञात वस्तु के साथ।
var orderedDates = networks.Select(n => new {Date = n.NetworkingDate, Id = n.NetWorkingId, NetworkType = n.GetType().Name})
.Union(privateNetworks.Select(n => new {Date = n.DateCreation, Id = n.PrivateNetWorkingId, NetworkType = n.GetType().Name}))
.OrderBy(n => n.Date);
लेकिन अगर जवाब है मैं तुम सच में एक बहुरूपी समाधान है, जहां आप एक ही प्रकार है कि आप एक कॉल कर सकते हैं की आवश्यकता है तो 10 सबसे पुराने नेटवर्क करने के लिए एक बंद() कमांड भेजने की जरूरत है Shutdown()
विधि, जो आप जिस प्रकार का उपयोग कर रहे हैं उस पर विशिष्ट Shutdown()
विधि का समाधान करेगा।
केवल उपयोग करने के लिए करता है, तो उपयोगकर्ता khellang's answer एक और उत्तर
@BinaryWorrier मैं इस सवाल का जवाब चुना है पर के लिए आप
काम नहीं करता है एक टिप्पणी से, क्योंकि मैं पहले से ही में रिकॉर्ड एक बहुरूपी समाधान डेटाबेस, इसलिए यदि मैं एक नया इंटरफ़ेस जोड़ना चुनता हूं तो मैं इंटरफ़ेस जोड़ने से पहले रिकॉर्ड किए गए रिकॉर्ड के साथ कैसे सौदा करूँगा? किसी भी तरह - -
मैं यह मुश्किल विश्वास है कि अपने ORM आप एक इकाई वर्ग और नहीं के लिए एक इंटरफेस को जोड़ने के लिए अनुमति नहीं दी जाएगी पाते हैं कि इंटरफ़ेस निशान और/या तो वे ORM द्वारा नजरअंदाज कर दिया रहे हैं यह सदस्य है।
हालांकि, मानते हुए कि आप एक नया इंटरफ़ेस या बेस क्लास नहीं जोड़ सकते हैं, फिर भी आप यह polymorphically कर सकते हैं।
इंटरफ़ेस जोड़ें, इंटरफ़ेस है कि आपके नेटवर्क वर्गों (Abstractor
वर्ग) से प्रत्येक के लिए, तो Abstractor
वर्गों में नेटवर्क वर्गों को बदलने को लागू करने के लिए उन्हें एक List<INetwork>
को जोड़ने और उस सूची छँटाई एक वर्ग जोड़ें।
public interface INetwork
{
DateTime? Date { get; }
}
public class PrivateNetworkAbstractor
:INetwork
{
private PrivateNetwork network;
public PrivateNetworkAbstractor(PrivateNetwork network)
{
this.network = network;
}
public DateTime? Date
{
get { return network.DateCreation; }
}
}
public class NetworkingAbstractor
: INetwork
{
private Networking networking;
public NetworkingAbstractor(Networking networking)
{
this.networking = networking;
}
public DateTime? Date
{
get { return networking.NetWorkingDate; }
}
}
...
public IEnumerable<INetwork> MergenSort(IEnumerable<Networking> generalNetWorks, IEnumerable<PrivateNetwork> privateNetWorks)
{
return generalNetWorks.Select(n => new NetworkingAbstractor(n)).Cast<INetwork>()
.Union(privateNetWorks.Select(n => new PrivateNetworkAbstractor(n)).Cast<INetwork>())
.OrderBy(n=> n.Date);
}
क्या आपने कुछ भी करने की कोशिश की है? लिंक का संघ ऑर्डरब्य में शामिल हो सकता है ... –
हां मैंने संघ की कोशिश की, लेकिन समस्या यह है कि उन्हें कैसे क्रमबद्ध करें क्योंकि उनके पास एक ही क्षेत्र नहीं है – kbaccouche
आप एक सामान्य अनाम ऑब्जेक्ट पर 'चयन करें' दोनों को चुन सकते हैं –