2017-04-25 3 views
2

私は現在C#6を使用しているアプリケーションで作業しています。私はスーパークールなトリックをしたいと思いますが、不幸にも思った通りに機能しませんし、プロパティが空の場合はNull例外:View Model intの解析エラーがC?

public string CoolId {get;set;} // e.g. 1,5,3,7 

public List<int> CoolIdList => WebUtility.HtmlDecode(CoolId).Split(',').Select(Int32.Parse).ToList(); 

プロパティCoolIdは、それが空の場合はnull例外がある「1,5,3,7」などの値を持っている場合、それは動作します。

私は

public List<int?> CoolIdList => WebUtility.HtmlDecode(CoolId).Split(',').Select(Int32.Parse).ToList(); 

を行いたい場合...私はすぐに例外を取得します。

この問題の解決方法をご存知ですか?

感謝:)

+1

もnull文字列を処理し、分割の拡張メソッドを実装することができます。 – SLaks

+0

パラメータがnullの場合、int32.ParseはArgumentNullExceptionをスローします。それがあなたのものであるかどうかはわかりません。 – KSib

+1

設定されているプロパティに頼ることができない場合は、有効な値を持つものに頼ることもできません。だからあなたはヌル値以上のものを検証する必要があります – musefan

答えて

4

あなたがnullのため

  1. チェックする必要があります。
  2. 分割時に空のエントリを削除します。

WebUtility.HtmlDecode(CoolId ?? string.Empty) 
      .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) 
+0

私が探していたものでした:) – TimHorton

1

そうしないと、あなたはそれが `null`なのでだ場合何をしたいのか把握する必要があり