-6
我是Linq的新手。我有一個要求,有2個列表,一個是學生名單,另一個是標記列表。在學生中,我們有身份證,姓名和標記清單ID(sid),標記,科目。每個學生需要輸入學號,姓名和總分數。我已經接近代碼如下,Linq加入兩個列表
class Student
{
public int Id { get; set; }
public string name { get; set; }
}
class Marks
{
public int Sid {get;set;}
public int mark {get;set;}
public string subjects {get;set;}
}
class Program
{
static void Main(string[] args)
{
//student
List<Student> studentList = new List<Student>()
{
new Student() { Id = 1, name = "A" },
new Student() { Id = 2, name = "B" }
};
//marks
List<Marks> markList = new List<Marks>()
{
new Marks() { Sid = 1, mark = 30, subjects = "A1" },
new Marks() { Sid = 1, mark = 40, subjects = "A2" },
new Marks() { Sid = 2, mark = 40, subjects = "B1" },
new Marks() { Sid = 1, mark = 50, subjects = "B2" }
};
var result=(from stu in studentList
join mar in markList
on stu.Id equals mar.Sid
select new
{
stu.Id,
stu.name,
mar.mark,
mar.subjects
})
.GroupBy(x => x.subjects).ToList();
以上Linq查詢不符合我的要求。有什麼建議麼?
請編輯您的問題其可讀性縮進代碼標記列表和標記,並使用集合初始值設定項,您可以編寫相同的代碼*更*更易讀和緊湊。現在,實際產出是多少?你想要的產出是多少?請提供更多信息,而不僅僅是「不符合我的要求」。不要忘記,堆棧溢出的目的是創建一個高質量的問題和答案的存儲庫... –
使用連接。請參閱網頁:https://code.msdn.microsoft.com/LINQ-Join-Operators-dabef4e9 – jdweng