2

私はコードをもっている:

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)
{
}

x.Length で null をキャッチし、コードを実行し続けるにはどうすればよいですか??

4

2 に答える 2

11

x.Lenght で null をキャッチし、コードを実行し続けるにはどうすればよいですか??

さて、この場合の値は何にしますか? たとえば、次のように使用できます。

orderby x == null ? -1 : x.Length, x

またはおそらく:

orderby x == null ? int.MaxValue : x.Length, x

またはおそらく:

orderby x == (x ?? "").Length, x

または、最初に文字列をフィルタリングする必要があるかもしれません:

var size = from x in sizes
           where x != null
           orderby x.Length, x
           select x;
于 2012-08-10T10:27:55.063 に答える
1

追加してみてください

where x != null

フィルタリングで

于 2012-08-10T10:30:44.693 に答える