基本的に行で区切られた整数のリストであるファイルを読み込もうとしています。明らかに、ファイル入力は決して信頼できないため、非整数を除外する必要があります。
- 1
- 2
- 3
- 4
as
演算子は通常、変換できる場合は変換してからnullを割り当てますが、nullint
可能ではないため、そうではありません。にキャストできるのではないかと思いましたNullable<int>
。私はこれを実際に掘り下げたことはありませんが、おそらくできると思いました:
var lines = File.ReadAllLines("");
var numbers = lines.Select(line => line as int?).Where(i => i != null);
次のようにすることで、これを回避できる可能性があることを知っています。
var numbers = lines.Select(line =>
{
int iReturn = 0;
if (int.TryParse(line, out iReturn ))
return iReturn;
else
return null;
}).Where(i => i != null);
拡張メソッドとして実行することもできます。
私は、ステートメントでキャストを行い、コードが無効である理由を理解するためのきちんとした簡潔な方法を探していました。