c# - Select Top(x) while x.Kind = "value" -


how select top of list long items @ top of list have property specific value.

i need linq statement see there break in sequence , return top 2 items. problem don't know how many items going have correct property value.

i have been working through problem linqpad 4. code below copy , past linqpad 4. results, "q", should not contain somedata effectivedate of 4/5/2011 because kind property on hsc2 "kindtwo".

i trying find value resent value of "kind" , take top records match value until record doesn't match value.

void main() {     var hsc1 = new somedata {effectivedate = new datetime(2011,4,5), kind = "kindone"};     var hsc2 = new somedata {effectivedate = new datetime(2011,4,10), kind = "kindtwo"};     var hsc3 = new somedata {effectivedate = new datetime(2011,4,20), kind = "kindone"};     var hsc4 = new somedata {effectivedate = new datetime(2011,4,25), kind = "kindone"};      var = new [] {hsc1, hsc2, hsc3, hsc4};      var lastsomedata = all.orderbydescending((x) => x.effectivedate).first();      lastsomedata.dump();      var q = h in              h.kind == lastsomedata.kind             orderby h.effectivedate descending              select h;      q.dump(); }  // define other methods , classes here class somedata {     public datetime effectivedate {get;set;}     public string kind {get;set;} } 

this working console application asked. not first propose use of takewhile in question, please not mark answer accepted one.

using system; using system.linq; namespace stackoverflow.com_questions_5825629_select_topx_while_x_kind_value {     class program     {         static void main()         {             var hsc1 = new somedata { effectivedate = new datetime(2011, 4, 5), kind = "kindone" };             var hsc2 = new somedata { effectivedate = new datetime(2011, 4, 10), kind = "kindtwo" };             var hsc3 = new somedata { effectivedate = new datetime(2011, 4, 20), kind = "kindone" };             var hsc4 = new somedata { effectivedate = new datetime(2011, 4, 25), kind = "kindone" };              var = new[] { hsc1, hsc2, hsc3, hsc4 };              var lastsomedata = all.orderbydescending((x) => x.effectivedate).first();              var q = (from h in                      orderby h.effectivedate descending                      select h).takewhile(x => x.kind == lastsomedata.kind);              var result = q.toarray();              foreach (var item in result)                 console.writeline(item);             console.writeline("");             console.writeline("press key");             console.readkey();         }          // define other methods , classes here         class somedata         {             public datetime effectivedate { get; set; }             public string kind { get; set; }             public override string tostring()             {                 return string.format(@"new somedata {{ effectivedate = new datetime({0}, {1}, {2}), kind = ""{3}"" }};", effectivedate.year, effectivedate.month, effectivedate.day, kind);             }         }     } } 

Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -