比如有这样一个list
list<product> aproduct=new list<product>();
for(int i=0;i<9;i++)
{
product thp=new product();
thp.id=i;
thp.name=i+100;
aproduct.add(thp)
}class product{
int id{get;set;}
int name{get;set;}
int score3{get;set;}
}再比如有两外一个list,是这样的list<entityscroe> score=new list<entityscroe>();
for(int i=0;i<9;i++)
{
score thisscrore=new score();
thisscrore.id=i;
thisscrore.score1=i+100;
thisscrore.score2=i+50;
score.add(thisscrore)
}class entityscroe{
int id{get;set;}
int score1{get;set;}
int score2{get;set;}
}
现在product和score是两个list,里面的属性有ID,我想要的是,如果score的id和product的id相同,那么就把score里的score1和score2的值,相加后赋值给product的score3属性,重而组成一个新的list用linq怎么做?
list<product> aproduct=new list<product>();
for(int i=0;i<9;i++)
{
product thp=new product();
thp.id=i;
thp.name=i+100;
aproduct.add(thp)
}class product{
int id{get;set;}
int name{get;set;}
int score3{get;set;}
}再比如有两外一个list,是这样的list<entityscroe> score=new list<entityscroe>();
for(int i=0;i<9;i++)
{
score thisscrore=new score();
thisscrore.id=i;
thisscrore.score1=i+100;
thisscrore.score2=i+50;
score.add(thisscrore)
}class entityscroe{
int id{get;set;}
int score1{get;set;}
int score2{get;set;}
}
现在product和score是两个list,里面的属性有ID,我想要的是,如果score的id和product的id相同,那么就把score里的score1和score2的值,相加后赋值给product的score3属性,重而组成一个新的list用linq怎么做?
{
public int id { get; set; } //注意要申明为public
public int name { get; set; }
public int score3 { get; set; }
} class entityscroe
{
public int id { get; set; }
public int score1 { get; set; }
public int score2 { get; set; }
} void test()
{
List<product> aproduct = new List<product>();
for (int i = 0; i < 9; i++)
{
product thp = new product();
thp.id = i;
thp.name = i + 100;
aproduct.Add(thp);
} List<entityscroe> score = new List<entityscroe>();
for (int i = 0; i < 9; i++)
{
entityscroe thisscrore = new entityscroe();
thisscrore.id = i;
thisscrore.score1 = i + 100;
thisscrore.score2 = i + 50;
score.Add(thisscrore);
}
//结果:
List<product> listNew = (from s1 in aproduct
join s2 in score
on s1.id equals s2.id
select new product
{
id = s1.id,
score3 = s2.score1 + s2.score2
}).ToList(); }