我有一些名单,其中包含一个或多个Guid。
var getMyfirstListGuids = (from dlist in db.MyTable
where dlist.id == theid
select dlist).ToList();
List<MyfirstList> myfirstList = new List<MyfirstList>();
foreach (var item in myLandingPageList)
{
Guid theguid = new Guid(item.guid);
MyfirstList addnewRow = new MyfirstList();
addnewRow.LpGuid = new Guid(theguid);
myfirstList.Add(addnewRow);
}
现在我有一个包含1个或更多guid的列表。 我的下一步是使用第一个列表guid从SQL创建数据列表。 在SQL中,每个guid可以是1行或更多行。有一行结果我可以猜测该做什么。但如果有很多结果,我就没有想法。
答案 0 :(得分:0)
好的,所以你想这样做:
List<SecondListGUID> secondListGUID = new List<SecondListGUID>();
foreach (var item in myfirstList)
{
for(int i = 0; i<_yourDBEntity.GUIDs.Count(); i++)
{
if(item.LpGuid == _yourDBEntity.GUIDs[i].GUID)
secondListGUID.add(
new SecondListGUID() {
// add the corresponding GUID's here
});
}
}
基本上你必须通过你的第一个List做一个foreach,然后通过你的数据库表(在这种情况下实体,如果你正在使用实体框架)进行for循环(或foreach - 无论你喜欢哪个)并简单比较您的数据库表格中的GUID如果与您匹配,则会将该项目添加到您的第三个列表中。
P.S。我已经使用了您提供的信息,您可以将第二个列表类型更改为您需要的类型,并将实体框架数据模型名称更改为您实际使用的名称:)
答案 1 :(得分:0)
您可以尝试
List<Guid>getMyfirstListGuids = new List<Guid>();
getMyfirstListGuids.addRange(from dlist in db.MyTable
where dlist.id == theid
select dlist).ToList());
List<MySecList> mySecList = new List<MySecList>();
mySecList.AddRange(_db.myLandingPageList.Where(p => p.Guid.Any(x => getMyfirstListGuids.Contains(x));