2013-05-10 41 views
10

Tôi đã làm theo LINQ truy vấn để có được một bộ dữ liệu.Làm thế nào để gán chuỗi rỗng nếu giá trị là null trong truy vấn 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 }; 

Vấn đề là mã của tôi có thể xử lý các lĩnh vực sau khi truy vấn này không thành công vì field.Value của một số hàng đang quay trở lại null.

Mục tiêu của tôi là gán một chuỗi trống nếu phát hiện null.

Một cái gì đó như if field.Value == null, then field.Value = ""

Có thể làm như vậy trong truy vấn LINQ không?

Trả lời

29

Sử dụng null coalescing operator??:

FieldValue = field.Value ?? "" 
+0

hey @Jon bất kỳ lý do cụ thể nào sử dụng "" trên chuỗi.Empty? – PSL

+8

@PSL: 10 ký tự ít hơn để nhập. – Jon

+0

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

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

Sử dụng null-coalescing operator

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

Các ?? toán tử được gọi là toán tử kết hợp null và được sử dụng để định nghĩa một giá trị mặc định cho các kiểu giá trị nullable hoặc các kiểu tham chiếu. Nó trả về toán hạng bên trái nếu toán hạng không phải là null; nếu không nó sẽ trả về toán hạng bên phải.

1

Sử dụng ?? điều hành trở về chuỗi rỗng trong trường hợp 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

... tất cả các câu trả lời đều tốt hơn tôi. –

+3

Dưới đây là một ý kiến ​​tuyệt vời để đi với kiến ​​thức mới của bạn :-) – 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}; 
Các vấn đề liên quan