मेरे पास नीचे के रूप में परिभाषित एक वर्ग है।

public class Risk
{
   public DateTime RiskDate { get; set;}
   public string RiskStatus { get; set;}    
}

और मेरे पास नीचे के रूप में जोखिम की एक सूची है

जोखिम दिनांक जोखिम स्थिति

10/10/2001 उच्च

15/10/2001 निम्न

21/10/2001 उच्च

28/10/2001 निम्न

05/11/2001 उच्च

08/11/2001 कम

मैं किसी दी गई तिथि के लिए सूची से दिनांक सीमा खोजना चाहता हूं। उदाहरण के लिए, यदि मेरी इनपुट तिथि 17/10/2001 है तो मैं सूची से 15/10/2001 और 21/10/2001 खींचना चाहूंगा। यदि मेरी इनपुट तिथि सूची से सटीक मेल खाती है, उदाहरण के लिए 28/10/2001, तो मैं केवल उस तिथि को सूची से खींचना चाहूंगा।

मुझे आशा है कि कोई मुझे इस पर सलाह दे सकता है।

धन्यवाद

1
Alan B 19 सितंबर 2011, 03:31
आपने अब तक क्या प्रयास किया? क्या आप इसे LINQ या SQL के साथ करना चाहते हैं? जब तक आपको कोई सटीक मिलान नहीं मिल जाता है, तब तक आपको मूल रूप से अधिकतम निम्न और अधिकतम का न्यूनतम प्राप्त करना चाहिए।
 – 
Davide Piras
19 सितंबर 2011, 03:37
मैंने जो किया वह सूची को क्रमबद्ध करने और उस तारीख की अनुक्रमणिका को खोजने के लिए लूप का उपयोग कर रहा था जो बराबर या उससे कम है। फिर श्रेणी के सूचकांक ज्ञात कीजिए। लेकिन मैं इसे संभवतः LINQ में करना चाहता हूं।
 – 
Alan B
19 सितंबर 2011, 03:48

1 उत्तर

सबसे बढ़िया उत्तर

यह काम:

var lower =
    from d in dates
    where d <= inputDate
    orderby d descending
    select d;

var upper =
    from d in dates
    where d >= inputDate
    orderby d
    select d;

var range = lower.Take(1)
    .Concat(upper.Take(1))
    .Distinct();
0
Enigmativity 19 सितंबर 2011, 03:54
जोखिम वर्ग के लिए IComparable इंटरफ़ेस को लागू करने से उपरोक्त कोड वांछित के रूप में काम करता है। धन्यवाद
 – 
Alan B
19 सितंबर 2011, 04:24
बी - चूंकि आप केवल तिथियों के साथ काम कर रहे थे, मुझे लगा कि आप अपनी Risk कक्षा से डेटा प्रॉपर्टी का चयन भी कर सकते थे, लेकिन IComparable को लागू करना भी काम करेगा। धन्यवाद।
 – 
Enigmativity
19 सितंबर 2011, 04:50