2009-12-13 46 views
0

與DefaultOrEmpty工作在默認或空的情況下,我想提供一些價值:在LINQ

string[] str = {string.Empty, "hello", "world" }; 

var select = str.Select(s => s).DefaultIfEmpty("nodata"); 

GridView1.DataSource = Select; 
GridView1.DataBind(); 

爲什麼我的網格沒有得到填充:

nodata 
hello 
world 

相反,我得到:

hello 
world 

回答

7

DefaultIfEmpty如果序列爲空,提供一個缺省值 - 你要使用它的序列(即的String.Empty)的替代空值。您應該使用:

var select = str.Select(s => String.IsNullOrEmpty(s) ? "nodata" : s); 
+0

+1。是啊。我沒有看到默認或空的需求位! – RichardOD 2009-12-13 13:58:46

0

默認爲空,用於執行外部連接。試試這個...

var select = str.Select(s => String.IsNullOrEmpty(s) ? "nodata" : s);