2016-12-16 40 views
1

我有一些列出保存1个或更多的Guid另一个列表数据来构建列表。如何通过从使用LINQ

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); 
} 

现在我有一个或多个GUID列表。 我的下一个步骤是由第一列表的GUID,使从SQL数据列表。 在SQL中,每个guid可以有1行或更多行。一行结果我可以猜测要做什么。但如果有很多结果我没有想法。

+2

我不明白问题是什么。你能详细说明吗? – Amy

+0

@Elidotnet你想通过的GUID myfirstList与您在您的数据库有那些比较建立一个新的列表,并在它们匹配的项目添加到新的列表或? – User987

+0

我有一个包含很多GUID(xxxx-xxxxxx-xxx ....)的列表。我创建了构建该列表的foreach函数。现在我想创建新的列表和foreach函数,它通过给定的GUID从数据库中添加行。 – Elidotnet

回答

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 }); 
    } 
    } 

基本上,你必须通过你的第一个列表做一个foreach,然后循环做了 - 通过你的数据库表((或的foreach无论你喜欢)实体在这种情况下,如果你正在使用实体框架),并简单地从你的数据库表比较GUID的,如果他们匹配,你会想将项目添加到您的第三列表。

希望有帮助!

P.S.我与您所提供的信息的工作,你可以改变第二列表类型到你需要的,改变你的实体framwork数据型号向一个你实际使用:)

0

我是想什么你发送了,它没有工作。我尝试类似的东西(我知道它不是伟大的代码,它没有工作因为FirstOrSingle),但那是ID

List<MySecList> mySecList = new List<MySecList>(); 

foreach (var itemval in myfirstList) 
{ 
int isLeadExist = CheckForLeads(itemval.LpGuid, db); 
if (isLeadExist > 0) 
{ 
MySecList addlead = new MySecList(); 

string lpguidstr = itemval.LpGuid.ToString(); 
Guid lpguid = new Guid(lpguidstr); 

var findid = (from p in db.rakna_AssetsLeads 
where p.lpGuid == lpguid 
select p).ToList().FirstOrDefault(); 

addlead.ContactId = findid.contactId; 
mySecList.Add(addlead); 
} 
} 
+0

@ User987这是想法(不工作) – Elidotnet