के लिए ऑर्डरबी अभिव्यक्ति बनाएं मैं संकल्पना का सबूत बना रहा हूं जो गतिशील और ऑर्डरबाय के लिए लैम्ब्डा/LINQ का उपयोग करता है। निम्न कोड कहां अभिव्यक्ति के लिए काम करता है, लेकिन मैं यह नहीं समझ सकता कि अभिव्यक्ति द्वारा ऑर्डर कैसे बनाया जाए। इस उदाहरण के लिए, यदि संभव हो तो मैं इसे सरल रखना चाहता हूं; मैं कोड लिखना नहीं चाहता जो एक अभिव्यक्ति वृक्ष को संशोधित करता है।LINQ/Lambda
void Main()
{
DateTime productSince = DateTime.UtcNow.Subtract(new TimeSpan(1,30,0));
Expression<Func<Products, bool>> filter = d => d.CreatedDate > productSince && d.Price < 100 ;
List<Products> products = GetProducts(filter, Products);
Console.WriteLine(products);
}
private static List<Products> GetProducts(Expression<Func<Products, bool>> filter, Table<Products> Products)
{
var products = Products.Where(filter);
return products.ToList();
}
जो मैं चाहता हूं वह निम्न के जैसा है लेकिन अभिव्यक्ति द्वारा क्रम बनाने के लिए कोड को नहीं समझ सकता।
void Main()
{
DateTime productSince = DateTime.UtcNow.Subtract(new TimeSpan(1,30,0));
Expression<Func<Products, bool>> filter = d => d.CreatedDate > productSince && d.Price < 100 ;
Expression<Func<Products, ????>> orderBy = d => ??????;
List<Products> products = GetProducts(filter, orderBy, Products);
Console.WriteLine(products);
}
private static List<Products> GetProducts(Expression<Func<Products, bool>> filter,
Expression<Func<Products, ???>> orderBy, Table<Products> Products)
{
var products = Products.Where(filter).OrderBy(orderBy);
return products.ToList();
}
यदि आप सोच रहे हैं, तो मैं अवधारणा के इस सबूत के लिए लिंककैड का उपयोग कर रहा हूं।
उत्तर के लिए धन्यवाद, लेकिन मैं टॉडरबी का संदर्भ कैसे दूं? –
आप नहीं करते हैं, यह ऑर्डर द्वारा पैरामीटर द्वारा उपयोग किया जाता है। 'अभिव्यक्ति> orderBy' –
दूसरों की सहायता करने के लिए। ऑर्डर बनाने के लिए अभिव्यक्ति 'अभिव्यक्ति> orderBy = d => d.Price;' जैसी कुछ करें। जहां मूल्य एक दशमलव प्रकार है। पिछले कोड में, दशमलव किसी भी प्रकार का हो सकता है, जैसे डेटटाइम, स्ट्रिंग, या int। इस प्रकार को एक्सप्रेशन से लौटाए गए प्रकार से मेल खाना चाहिए। यदि डेटटाइम का उपयोग किया जाता है, तो लैम्ब्डा अभिव्यक्ति डी.क्रेटेडडेट जैसी कुछ होनी चाहिए। –