2013-05-10 7 views
10

Mam następujące zapytanie LINQ, aby uzyskać zestaw danych.Jak przypisać pusty ciąg znaków, jeśli w zapytaniu linq wartość jest pusta?

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 }; 

Problemem jest to, że mój kod, który obsługiwać pola po tym zapytaniu nie dlatego field.Value niektórych wierszy wracają null.

Moim celem jest przypisanie pustego łańcucha, jeśli zostanie wykryty null.

Coś if field.Value == null, then field.Value = ""

Czy to możliwe, aby to zrobić w kwerendy LINQ?

Odpowiedz

29

Użyj null coalescing operator??:

FieldValue = field.Value ?? "" 
+0

hej @Jon określonego powodu za pomocą "" nad string.Empty? – PSL

+8

@PSL: 10 znaków mniej do wpisania. – Jon

+0

Lol :) ........ – PSL

6
FieldValue = field.Value ?? String.Empty 
4

Użyj null-coalescing operator

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

?? operator jest nazywany operatorem koalescencyjnym i jest używany do definiowania wartości domyślnej dla typów wartości zerowej lub typów referencyjnych. Zwraca lewy operand, jeśli operand nie jest pusty; w przeciwnym razie zwraca prawy operand.

1

Zastosowanie ?? operator wrócić pusty ciąg w przypadku 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) }; 
3

FieldValue = field.value == null? "": field.Value

+5

... wszystkie odpowiedzi lepsze niż moje. coś ... –

+3

Oto przegrana, aby przejść do nowej wiedzy :-) – Jon

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}; 
Powiązane problemy