c# - Xelement Linq with Null value? -


i try getting xelement value , insert array, when xelement null, show error below when insert array:

object reference not set instance of object.

is possible remove null value? or replace null value not null value? please advice me.

my node in xml format in database (3rd value null):

<answerdata><answer1>a1</answer1><answer2>a2</answer2><answer3></answer3></answerdata> 

my controller:

int z = 0; string[] multiresultanswer = new string[choicesubqarray.count()];  (int x = 0; x < multiresultanswer.count(); x++) {     xelement rateans =         (from node in qconfig.elements("answer" + (x + 1))             select node).singleordefault();      // error when store 3rd value ====> multiresultanswer[z++] = rateans.value;         } 

i think easier work way:

string[] multiresultanswe = enumerable     .range(1, choicesubqarray.count())     .select(x => (from node in qconfig.elements("answer" + x)                select node).singleordefault())     .where(x => x != null)     .select(x => x.value)     .toarray(); 

that entail getting range of answers (enumerable.range), changing list of numbers required result (select), leaving out nulls (where), converting value (select), , putting results array (toarray).

you can improve (from node in qconfig.elements("answer" + x) select node).singleordefault() changing qconfig.elements("answer" + x).singleordefault() same thing.


Comments