実現したいこと
クラスのインスタンス作成時の初期化する際、クラス内にリストの初期化があった場合どのように記入すればいいのかわかりません。
以下サイトのコードをそのままコピペで動かそうとすると、GetStudents()メソッドのStudentクラスを初期化する箇所でエラーメッセージが表示されてしまいます。最初見たときは、リストを配列のような書き方で初期化できるんだと思ったのですが、実行できずどのような対処をしていいのか分からず質問しました。
こちらのサイトの「ブールでグループ化する」という箇所の見本コードです。
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/group-clause
発生している問題・エラーメッセージ
GetStudents()メソッド内でStudentクラスに値を入れてインスタンス化する際、Scoresに値を入れる箇所でエラーが発生します。
エラー CS1525 '[' は無効です
該当のソースコード
class GroupSample1 { // The element type of the data source. public class Student { public required string First { get; init; } public required string Last { get; init; } public required int ID { get; init; } public required List<int> Scores; } public static List<Student> GetStudents() { // Use a collection initializer to create the data source. Note that each element // in the list contains an inner sequence of scores. List<Student> students = [ new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores= [97, 72, 81, 60]}, new Student {First="Claire", Last="O'Donnell", ID=112, Scores= [75, 84, 91, 39]}, new Student {First="Sven", Last="Mortensen", ID=113, Scores= [99, 89, 91, 95]}, new Student {First="Cesar", Last="Garcia", ID=114, Scores= [72, 81, 65, 84]}, new Student {First="Debra", Last="Garcia", ID=115, Scores= [97, 89, 85, 82]} ]; return students; } static void Main() { // Obtain the data source. List<Student> students = GetStudents(); // Group by true or false. // Query variable is an IEnumerable<IGrouping<bool, Student>> var booleanGroupQuery = from student in students group student by student.Scores.Average() >= 80; //pass or fail! // Execute the query and access items in each group foreach (var studentGroup in booleanGroupQuery) { Console.WriteLine(studentGroup.Key == true ? "High averages" : "Low averages"); foreach (var student in studentGroup) { Console.WriteLine(" {0}, {1}:{2}", student.Last, student.First, student.Scores.Average()); } } } } /* Output: Low averages Omelchenko, Svetlana:77.5 O'Donnell, Claire:72.25 Garcia, Cesar:75.5 High averages Mortensen, Sven:93.5 Garcia, Debra:88.25 */
試したこと
Listの初期化処理をいろいろ書いてみましたが分かりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/12/20 22:55