2013-07-25 5 views
1

각 레코드에서 두 개의 레코드를 얻을LINQ 내가이 유형의 개체 목록이

NewObject 
    .Date 
    .Number 

을 하나의 객체에있는 Date는 EndDate와 Number가 될 것입니다. 다른 목적은 날짜는 STARTDATE되며 숫자는 음수

+0

가'인가 NewObject' 클래스 또는 익명의 유형이 될 것인가? –

답변

3
MyObjects.SelectMany(o => new[] { 
    new NewObject { Date = o.EndDate, Number = o.Number }, 
    new NewObject { Date = o.StartDate, Number = -o.Number } }); 
+1

같은 생각이지만 빠름 +1 –

+0

간단하고 분명 :) –

0
var result = (from myObject in MyObjects 
       select new NewObject { Date = myObject.StartDate, Number = -myObject.number }).Concat 
      (from myObject in MyObjects 
       select new NewObject { Date = myObject.EndDate, Number = myObject.number }); 
+0

O (3n) ...별로 좋지 않습니다. –

+0

@newStackExchangeInstance 그것은 O (2n)입니다. 너처럼. –

+0

Concat도 반복 처리해야합니다. –

0
var q = from o in MyObjects 
     select new { 
      NewObject1 = new NewObject(){ 
       Date = o.StartDate, 
       Number = -o.Number 
      }, 
      NewObject2 = new NewObject(){ 
       Date = o.EndDate, 
       Number = o.Number 
      } 
     };