How can I set the property value to 0 if the referenced model is NULL?
I'm calculating the value for WageCost
in ScheduleWeek
from ScheduleDays
like this (the property name is the same for wage cost in a day and in a week):
public double WageCost => ScheduleDays.Sum(w => w.WageCost);
But if ScheduleDays
is null
, I get an exception. How can I set the value of WageCost
to 0 if no ScheduleDays
exist?
c#
add a comment |
I'm calculating the value for WageCost
in ScheduleWeek
from ScheduleDays
like this (the property name is the same for wage cost in a day and in a week):
public double WageCost => ScheduleDays.Sum(w => w.WageCost);
But if ScheduleDays
is null
, I get an exception. How can I set the value of WageCost
to 0 if no ScheduleDays
exist?
c#
8
ScheduleDays?.Sum(w => w.WageCost) ?? 0;
– SeM
Nov 15 '18 at 13:29
Write a check for null. SeM gave you the new null-conditional opeartor wich isa convencience feature that was added with C# 6 or so. But a good oldif(ScheduleDays == null) WageCost = 0;
would also work.
– Christopher
Nov 15 '18 at 13:30
@Christopher If I remember correctly, expression bodied properties was added in c#6. So I assumed he is using >=c#6.
– SeM
Nov 15 '18 at 13:34
@SeM: It is a solid asumption that anyone has access to those right now. I was just mentioning it for completeness.
– Christopher
Nov 15 '18 at 13:38
add a comment |
I'm calculating the value for WageCost
in ScheduleWeek
from ScheduleDays
like this (the property name is the same for wage cost in a day and in a week):
public double WageCost => ScheduleDays.Sum(w => w.WageCost);
But if ScheduleDays
is null
, I get an exception. How can I set the value of WageCost
to 0 if no ScheduleDays
exist?
c#
I'm calculating the value for WageCost
in ScheduleWeek
from ScheduleDays
like this (the property name is the same for wage cost in a day and in a week):
public double WageCost => ScheduleDays.Sum(w => w.WageCost);
But if ScheduleDays
is null
, I get an exception. How can I set the value of WageCost
to 0 if no ScheduleDays
exist?
c#
c#
asked Nov 15 '18 at 13:27
StianStian
339213
339213
8
ScheduleDays?.Sum(w => w.WageCost) ?? 0;
– SeM
Nov 15 '18 at 13:29
Write a check for null. SeM gave you the new null-conditional opeartor wich isa convencience feature that was added with C# 6 or so. But a good oldif(ScheduleDays == null) WageCost = 0;
would also work.
– Christopher
Nov 15 '18 at 13:30
@Christopher If I remember correctly, expression bodied properties was added in c#6. So I assumed he is using >=c#6.
– SeM
Nov 15 '18 at 13:34
@SeM: It is a solid asumption that anyone has access to those right now. I was just mentioning it for completeness.
– Christopher
Nov 15 '18 at 13:38
add a comment |
8
ScheduleDays?.Sum(w => w.WageCost) ?? 0;
– SeM
Nov 15 '18 at 13:29
Write a check for null. SeM gave you the new null-conditional opeartor wich isa convencience feature that was added with C# 6 or so. But a good oldif(ScheduleDays == null) WageCost = 0;
would also work.
– Christopher
Nov 15 '18 at 13:30
@Christopher If I remember correctly, expression bodied properties was added in c#6. So I assumed he is using >=c#6.
– SeM
Nov 15 '18 at 13:34
@SeM: It is a solid asumption that anyone has access to those right now. I was just mentioning it for completeness.
– Christopher
Nov 15 '18 at 13:38
8
8
ScheduleDays?.Sum(w => w.WageCost) ?? 0;
– SeM
Nov 15 '18 at 13:29
ScheduleDays?.Sum(w => w.WageCost) ?? 0;
– SeM
Nov 15 '18 at 13:29
Write a check for null. SeM gave you the new null-conditional opeartor wich isa convencience feature that was added with C# 6 or so. But a good old
if(ScheduleDays == null) WageCost = 0;
would also work.– Christopher
Nov 15 '18 at 13:30
Write a check for null. SeM gave you the new null-conditional opeartor wich isa convencience feature that was added with C# 6 or so. But a good old
if(ScheduleDays == null) WageCost = 0;
would also work.– Christopher
Nov 15 '18 at 13:30
@Christopher If I remember correctly, expression bodied properties was added in c#6. So I assumed he is using >=c#6.
– SeM
Nov 15 '18 at 13:34
@Christopher If I remember correctly, expression bodied properties was added in c#6. So I assumed he is using >=c#6.
– SeM
Nov 15 '18 at 13:34
@SeM: It is a solid asumption that anyone has access to those right now. I was just mentioning it for completeness.
– Christopher
Nov 15 '18 at 13:38
@SeM: It is a solid asumption that anyone has access to those right now. I was just mentioning it for completeness.
– Christopher
Nov 15 '18 at 13:38
add a comment |
2 Answers
2
active
oldest
votes
You can use ?
(null-conditional) and ??
(null-coalescing) operators for that:
public double WageCost => ScheduleDays?.Sum(w => w.WageCost) ?? 0;
References: ?? Operator , ?. and ? null-conditional Operators
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
add a comment |
Double verification
?
for w?.WageCost
: avoid NullException
??
for ScheduleDays
: if null
, takes 0
as value
public double WageCost => ScheduleDays?.Sum(w => w?.WageCost) ?? 0;
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53320558%2fhow-can-i-set-the-property-value-to-0-if-the-referenced-model-is-null%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can use ?
(null-conditional) and ??
(null-coalescing) operators for that:
public double WageCost => ScheduleDays?.Sum(w => w.WageCost) ?? 0;
References: ?? Operator , ?. and ? null-conditional Operators
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
add a comment |
You can use ?
(null-conditional) and ??
(null-coalescing) operators for that:
public double WageCost => ScheduleDays?.Sum(w => w.WageCost) ?? 0;
References: ?? Operator , ?. and ? null-conditional Operators
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
add a comment |
You can use ?
(null-conditional) and ??
(null-coalescing) operators for that:
public double WageCost => ScheduleDays?.Sum(w => w.WageCost) ?? 0;
References: ?? Operator , ?. and ? null-conditional Operators
You can use ?
(null-conditional) and ??
(null-coalescing) operators for that:
public double WageCost => ScheduleDays?.Sum(w => w.WageCost) ?? 0;
References: ?? Operator , ?. and ? null-conditional Operators
edited Nov 15 '18 at 13:37
answered Nov 15 '18 at 13:31
SeMSeM
4,43711529
4,43711529
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
add a comment |
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
Thanks! Antoine V has almost the same answer, and answered one minute before you did, but I'm accepting yours because of the reference links and because Antoine has more rep than you. ;)
– Stian
Nov 16 '18 at 8:19
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
@Stian You're welcome, and thanks :)
– SeM
Nov 16 '18 at 8:20
add a comment |
Double verification
?
for w?.WageCost
: avoid NullException
??
for ScheduleDays
: if null
, takes 0
as value
public double WageCost => ScheduleDays?.Sum(w => w?.WageCost) ?? 0;
add a comment |
Double verification
?
for w?.WageCost
: avoid NullException
??
for ScheduleDays
: if null
, takes 0
as value
public double WageCost => ScheduleDays?.Sum(w => w?.WageCost) ?? 0;
add a comment |
Double verification
?
for w?.WageCost
: avoid NullException
??
for ScheduleDays
: if null
, takes 0
as value
public double WageCost => ScheduleDays?.Sum(w => w?.WageCost) ?? 0;
Double verification
?
for w?.WageCost
: avoid NullException
??
for ScheduleDays
: if null
, takes 0
as value
public double WageCost => ScheduleDays?.Sum(w => w?.WageCost) ?? 0;
answered Nov 15 '18 at 13:29
Antoine VAntoine V
5,1262424
5,1262424
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53320558%2fhow-can-i-set-the-property-value-to-0-if-the-referenced-model-is-null%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
8
ScheduleDays?.Sum(w => w.WageCost) ?? 0;
– SeM
Nov 15 '18 at 13:29
Write a check for null. SeM gave you the new null-conditional opeartor wich isa convencience feature that was added with C# 6 or so. But a good old
if(ScheduleDays == null) WageCost = 0;
would also work.– Christopher
Nov 15 '18 at 13:30
@Christopher If I remember correctly, expression bodied properties was added in c#6. So I assumed he is using >=c#6.
– SeM
Nov 15 '18 at 13:34
@SeM: It is a solid asumption that anyone has access to those right now. I was just mentioning it for completeness.
– Christopher
Nov 15 '18 at 13:38