2015-11-09 47 views
-1

我在形式 -更新與空字符串值的列表,並保持價值在其他領域

FieldName-  DataType- 
Date   DateTime 
DateString  String 
Unit   double 
Price   double 

我想執行的操作,例如,如果在Date weakday不是週一然後更新列表DateString用空字符串,否則保持DateString的值。

數據存在於列表中。

UPDATE 我已經應用聚合函數在數據表dtGas如下 -

var qGas = from x in dtGas.AsEnumerable() 
         group x by new 
         { 
          Date = x.Field<DateTime>("Date"), 
          DateString = x.Field<string>("DateString") 
         } into egroup 
         select new 
         { 
          Date = egroup.Key.Date, 
          DateString = egroup.Key.DateString, 
          Unit = egroup.Sum(r => r.Field<double>("Unit")), 
          Price = egroup.Sum(r => r.Field<double>("Price")) 
         }; 

現在我需要顯示此結果成圖。由於大量數據值在X軸上重疊。

這就是爲什麼我需要從DateString中刪除一些值並只顯示其中幾個值的原因。

回答

1

您可以簡單地使用條件運算符是這樣的: -

group x by new 
     { 
      Date = x.Field<DateTime>("Date"), 
      DateString = x.Field<string>("DateString") 
     } into egroup 
let isMonday = egroup.Key.Date.DayOfWeek.ToString() == "Monday" 
select new 
     { 
      Date = egroup.Key.Date, 
      DateString = isMonday ? egroup.Key.DateString : "", 
      ..other properties 
+0

奏效真棒!我需要更進一步。如果我想始終返回第一個和最後一個值,該怎麼辦?而剩下的回報只是星期一? – kamalpreet

+0

您想要返回第一個還是最後一個值時沒有找到您?當它是星期一? –

+0

我認爲更好和可靠的想法是1.始終返回此字段中的首個和最後一個值(不管日期等)。 2.從列表中返回隨機值(空白之間留少數),以便總計返回值爲20(爲避免重疊,可在x軸上顯示的最大文本數)。 – kamalpreet

相關問題