2016-03-09 5 views
2

У меня этот сценарий ниже в моем классе.Условия внутри класса C#

aggrgt.Add(new PlainBrgDataSummaryChartAggrgt 
{ 
    label = m.label, 
    goal = m.goal, 
    groupCode = m.groupCode, 
    groupValue1 = m.groupValue1, 
    graphSwitch = m.graphSwitch, 
    orderByAsc = m.orderByAsc, 
    metricID = m.metricID, 
    scoreWk1 = metricscoreWk1.metricScore1,        
}); 

Состояние я хочу, если metricscoreWk1 is null, scoreWk1 = metricscoreWk1.metricScore1 is eliminated.

+0

Это запрос определяется вар. вар metricscoreWk1 = dataSet.Tables [ "DataBridge"] .AsEnumerable() .где (а => Convert.ToDateTime (а [ "reportingDate"]. ToString())> = startOfWeek1 && Convert.ToDateTime (а [ "reportingDate"]. ToString()) 1) .Select (д => новый PlainBrgDataSummaryChartAggrgt { metricScore12 = d.Sum (а => a.Field («n12»))/d.Sum (a => a.Field («d12»)) } ) .FirstOrDefault(); –

ответ

1

Вы не можете поставить "" для Double, ближайший аналог, INHO, является Double.NaN (Not A Number):

// Let's have Double.NaN for unknown/undefined etc. value 
    scoreWk1 = metricscoreWk1.metricScore1 ?? Double.NaN; 
+0

Спасибо. Это сработало :) –

3

Это может помочь вам:

scoreWk1 = metricscoreWk1.metricScore1 ==null ? 0 : metricscoreWk1.metricScore1 

То есть, если значение metricscoreWk1.metricScore1 равно нулю 0 (или другое значение любого по умолчанию) будет назначен еще исходное значение будет присвоено scoreWk1

+0

он не работает :( –

+0

он работает над этим - scoreWk1 = metricscoreWk1 == null? 0: metricscoreWk1.metricScore1, но я хочу, когда он равен null Я хочу, чтобы результат был пустым (""), но в настоящее время тип double –

0

Вы можете либо:

  • Создание PlainBrgDataSummaryChartAggrgt объект без установки scoreWk1 поле. Если metricscoreWk1 не является нулевым, вы затем устанавливаете это поле, а затем добавляете объект в список.

  • Если у вас есть setter для metricScore1, вы можете добавить проверку, в котором вы убедитесь, что metricscoreWk1 не null. Если это так, значение не обновляется.

Второй вариант позволит сохранить текущую структуру инициализации, но первая более явная. Если вы выберете второй подход, я бы рекомендовал вам его документировать.

+0

public double? ScoreWk1 {get; set;} –

+0

@BotSundi: попробуйте сделать так: 'public double scoreWk1; public double? ScoreWk1 {get {return this.scoreWk1;} set {if (this.metricscoreWk1! = Null) this. scoreWk1 = value;}} '. – npinti

Смежные вопросы