在LINQ中使用DefaultOrEmpty

Rus*_*sel 0 c# linq

如果是Default或Empty,我想提供一些值:

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

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

GridView1.DataSource = Select;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)

为什么我的网格没有被填满:

nodata
hello
world
Run Code Online (Sandbox Code Playgroud)

相反,我收到:

hello
world
Run Code Online (Sandbox Code Playgroud)

Lee*_*Lee 7

如果序列为空,则DefaultIfEmpty提供默认值 - 您尝试使用它来替换序列中的空值(即string.Empty).你应该使用:

var select = str.Select(s => String.IsNullOrEmpty(s) ? "nodata" : s);
Run Code Online (Sandbox Code Playgroud)