私は以下のStudent
クラスを持っています。各IDには試験のリストがあり、試験の列をExams_Line_list
のプロパティにマップする必要があります。 Excelシートを読むExams_Line_list
リストに追加マッピングする列
public class Student
{
string id;
public List<String> exams_Line_list = new List<String>();
public String exams_Line1;
public string Exams_Line1
{
get { return exams_Line1; }
set { exams_Line1 = value; }
}
public string ID
{
get { return id; }
set { id = value; }
}
public List<String> Exams_Line_list
{
get { return exams_Line_list; }
set { exams_Line_list = value; }
}
}
空の次のコードリターン:
IQueryable<Student> Students_var;
var excel = new ExcelQueryFactory(fileName_global1);
excel.AddMapping<Student>(x => x.ID, "STU_NO");
excel.AddMapping<Student>(x => x.Exams_Line1, "Exam");
Students_var = from c in excel.Worksheet<Student>("Stu_Schedule")
select c;
List<Student> StudentList_c = Students_var.ToList();
var grouped = StudentList_c.GroupBy(x => x.ID).Select(x => new Student
{
ID = x.Key,
Exams_Line_list = x.SelectMany(z => z.Exams_Line_list).ToList()
}).ToList();
foreach (var r in grouped)
{
Console.WriteLine(r.ID);
foreach (String s1 in r.Exams_Line_list)
Console.WriteLine(s1);
}
スキーマ:
私は試験の列をマップするためにStringプロパティを追加してい
、(Exams_Line1
) 区切り記号StudentList_c
は、今では、各試験の値と重複するIDを含むすべての行を読みますが、定義されたリストにグループ化をする(Exams_Line1
)
'StudentList_c'の中にあるものをチェックするために' var grouped = StudentList_c.GroupBy ... '行の前にブレークポイントを追加できますか?具体的には、試験文字列の正しい値が含まれていることを確認します。 –
はい、質問が更新されました –
大丈夫ですか? –