■No35446に返信(inunoshiさんの記事) > csc.exeでのコンパイル時のエラー(FirstOrDefaultの行で出ます) > error CS1525: '.' は無効です。 > error CS1003: 構文エラーです。':' が必要です。 それは LINQ の問題では無いですね。 エラー行とエラー列を再度確認してみてください。 .FirstOrDefault(〜) が失敗しているのではなく、 その後に続く ?.Icon の部分を解釈できていないのだと思います。 ?.Icon 構文は「null 条件演算子」といって C#6 で追加された文法です。 csc.exe のオプションに /langversion:6 を追加してみてください。 https://ufcpp.net/study/csharp/ap_ver6.html#null-conditional 現状は恐らく、 C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe を使っているのだと思いますが、これらは /langversion:5 までしか理解しませんので、 Roslyn 世代の csc.exe を利用してください。 なお、C# 6 以降に対応したコンパイラで /langversion:5 を指定した場合は、 error CS1525: '.' は無効です。 error CS1003: 構文エラーです。':' が必要です。 ではなく、 error CS8026: 機能 'Null を反映する演算子' は C# 5 では使用できません。6 以上の言語バージョンをお 使いください。 というメッセージに変化するはずです。 なお、 var icon = singleIcon.FirstOrDefault(x => x.Size == size)?.Icon; という行を var iconImage = singleIcon.FirstOrDefault(x => x.Size == size); if (iconImage == null) { continue; } var icon = iconImage.Icon; if (icon == null) { continue; } に書き換えれば、文法レベルを C#3 相当まで下げることができます。
2023/06/07(Wed) 09:10:27 に作成されたキャッシュを表示しています。生のデータを表示する | キャッシュを最新にする