13

データのセットを取得するために、次の LINQ クエリがあります。

var fields = from row in datarows
from field in row
from col in columnnames
where field.Key == col
select new { ColumnName = col, FieldValue = field.Value };

問題は、このクエリの後にフィールドを処理するコードが失敗したためfield.Value、一部の行が返されることnullです。

null私の目標は、が検出された場合に空の文字列を割り当てることです。

何かのようなものif field.Value == null, then field.Value = ""

linqクエリでそれを行うことは可能ですか?

4

7 に答える 7

34

null 合体演算子 を使用し??ます。

FieldValue = field.Value ?? ""
于 2013-05-10T20:42:58.930 に答える
6
FieldValue = field.Value ?? String.Empty
于 2013-05-10T20:42:53.830 に答える
4

FieldValue = field.Value == null ? "" : フィールド.値

于 2013-05-10T20:43:14.320 に答える
4

使用null-coalescing operator

select new { ColumnName = col, FieldValue = field.Value ?? string.Empty };

?? 演算子は null 合体演算子と呼ばれ、null 許容値型または参照型の既定値を定義するために使用されます。オペランドが null でない場合は左側のオペランドを返します。それ以外の場合は、右側のオペランドを返します。

于 2013-05-10T20:43:09.320 に答える
1

演算子を使用??して、null の場合は空の文字列を返します

var fields = from row in datarows
from field in row
from col in columnnames
where field.Key == col
select new { ColumnName = col, FieldValue = (field.Value ?? string.Empty) };
于 2013-05-10T20:43:10.487 に答える
0
var fields = from row in datarows
from field in row
from col in columnnames
where field.Key == col
select new { ColumnName = col, FieldValue = field.Value == null ? string.Empty: field.Value};
于 2013-05-10T20:44:59.763 に答える