我有一个代码:
string[] sizes = new string[] {"1","11","2","22","200","222", null, "105", "101", "102", "103", "90" };
try
{
var size = from x in sizes
orderby x.Length, x
select x;
foreach (var p in size)
{
Console.WriteLine(p);
}
Console.Read();
}
catch (NullReferenceException)
{
}
Run Code Online (Sandbox Code Playgroud)
我如何在x.Length中捕获null,并继续执行代码?
Jon*_*eet 11
我如何在x.Lenght中捕获null,并继续执行代码?
那么,在这种情况下你想要的价值是什么?例如,您可以使用:
orderby x == null ? -1 : x.Length, x
Run Code Online (Sandbox Code Playgroud)
或者可能:
orderby x == null ? int.MaxValue : x.Length, x
Run Code Online (Sandbox Code Playgroud)
或者可能:
orderby x == (x ?? "").Length, x
Run Code Online (Sandbox Code Playgroud)
或者你应该过滤字符串开头:
var size = from x in sizes
where x != null
orderby x.Length, x
select x;
Run Code Online (Sandbox Code Playgroud)