2016-12-16 34 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