您好我有两个名为SlownikRyzyk和Ryzyko的课程。我创建了一个名为query的新变量。我想插入只查询来自SlownikRyzyk的那些与类Ryzyko中的记录有关的记录。我通过使用纯linq找到了如何做到这一点的方法,但我想知道如何使用lambda表达式。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LinqTraining
{
class SlownikRyzyk
{
public int Id { get; set; }
public string NazwaRyzyka { get; set; }
public static List<SlownikRyzyk> getListSlownikRyzyk()
{
List<SlownikRyzyk> listSlownikRyzyk = new List<SlownikRyzyk>
{
new SlownikRyzyk
{
Id=1,
NazwaRyzyka="Włamanie"
},
new SlownikRyzyk
{
Id=2,
NazwaRyzyka="Napad"
},
new SlownikRyzyk
{
Id=3,
NazwaRyzyka="Pożar"
},
new SlownikRyzyk
{
Id=4,
NazwaRyzyka="Zepsute zamki"
}
};
return listSlownikRyzyk;
}
}
class Ryzyko
{
public int Id { get; set; }
public string Opis { get; set; }
public int SlownikRyzykId { get; set; }
public static List<Ryzyko> getListRyzyko()
{
List<Ryzyko> listRyzyko = new List<Ryzyko>
{
new Ryzyko
{
Id=11,
Opis="Pożar piwnicy może grozić stratą wielu ton papieru",
SlownikRyzykId=3
},
new Ryzyko
{
Id=12,
Opis="Ktoś może zatrzasnąć się w pokuju",
SlownikRyzykId=0
},
new Ryzyko
{
Id=14,
Opis="Ktoś może napaść na kase",
SlownikRyzykId=0
},
new Ryzyko
{
Id=17,
Opis="Przez włamanie do biur mogą zostać wykradzione pufne dane frimy",
SlownikRyzykId=1
}
};
return listRyzyko;
}
}
class Program
{
static void Main(string[] args)
{
var query = from r in Ryzyko.getListRyzyko()
from s in SlownikRyzyk.getListSlownikRyzyk()
where s.Id == r.SlownikRyzykId
select s;
foreach (var a in query)
{
Console.WriteLine(a.NazwaRyzyka);
}
}
}
}
答案 0 :(得分:0)
试试这个
var query=Ryzyko.getListRyzyko().
Join(SlownikRyzyk.getListSlownikRyzyk(),
r=>r.SlownikRyzykId,
s=>s.Id,
(r,s)=> new {R=r,S=s} )