以下のようなコードを書いたら
private static void Main() { var l = new List<int> { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; var hoge = Enumerable.Empty<(int?, int?)>(); hoge = l.Select(x => (x, x)); Console.ReadLine(); }
以下のように怒られた。
CS0266 型 ‘System.Collections.Generic.IEnumerable<(int, int)>’ を ‘System.Collections.Generic.IEnumerable<(int?, int?)>’ に暗黙的に変換できません。明示的な変換が存在します (cast が不足していないかどうかを確認してください)
分かるだろ!空気読めや!察せ!やんだくうきよめ!!
※英語
error CS0266: Cannot implicitly convert type ”System.Collections.Generic.IEnumerable<(int, int)>’ to ‘System.Collections.Generic.IEnumerable<(int?, int?)>’. An explicit conversion exists (are you missing a cast?)
◆結論
書いてある通りなんだけども、明示的な変換をしろ。
変換方法には2パターンあって、つまり変換できなかった時に例外吐いてほしいなら「(int?)x」だし、nullになって欲しい時は「x as int?」ですよね。
private static void Main() { var l = new List<int> { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; var hoge = Enumerable.Empty<(int?, int?)>(); hoge = l.Select(x => (x as int?, (int?)x)); Console.ReadLine(); }
まぁしょうがないと言えばしょうがないかと思う。勝手に型変換されるのも困るっつーかJavaScriptテメーいい加減にしなね。
◆結論
セブンイレブンのミルクフランスがうまかったんだけど、菓子パンは食うとなんかヤベーから月一くらいにしておく。あと、もっと硬くていいよ。硬いパンがすき。食うのに時間がかかる食品が好き。
コメントを残す