我得到了樹型對象。linq查詢語法,如何產生兩個列表組合的一個條件
一個對象EFacebook
,很簡單,有一個屬性叫做id
。
class EFacebook
{
public string id { get; set; }
}
A EUser
,更復雜。 EUser
獲取內部列表EProvider
,並且每個EProvider
獲得一個類型。像:
class EUser
{
public string name { get; set; }
public List<EProvider> EProviders { get; set; }
}
class EProvider
{
public enum EnumType
{
facebook = 1,
twitter = 2
}
public string id { get; set; }
public EnumType type { get; set; }
}
而且兩個列表:(供應商,內部的用戶,列表是可選的,可爲空):
// list of facebooks
List<EFacebook> facebooks = new List<EFacebook>();
facebooks.Add(new EFacebook { id = "1" });
facebooks.Add(new EFacebook { id = "2" });
facebooks.Add(new EFacebook { id = "3" });
// list of users
List<EUser> users = new List<EUser>();
List<EProvider> ps1 = new List<EProvider>();
ps1.Add(new EProvider { id = "1", type = EProvider.EnumType.facebook });
ps1.Add(new EProvider { id = "2", type = EProvider.EnumType.twitter });
List<EProvider> ps2 = new List<EProvider>();
ps2.Add(new EProvider { id = "3", type = EProvider.EnumType.facebook });
ps2.Add(new EProvider { id = "4", type = EProvider.EnumType.twitter });
EUser u1 = new EUser { name = "somea", EProviders = ps1 };
EUser u2 = new EUser { name = "someb", EProviders = ps2 };
EUser u3 = new EUser { name = "somec" };
users.Add(u1);
users.Add(u2);
users.Add(u3);
現在,我需要獲得基於關係的facebooks
兩個孩子名單在facebook.id
和user.eprovider(of enum facebook).id
之間。這意味着,的EFacebook
只包含對象facebook
與id
2的列表,因爲我沒有與facebook
類型和id
2的提供者的用戶,並且包含所述對象facebook
EFacebook
與id
1和3的列表,因爲我確實有facebook
類型的provider
和id
1和id
3.
我嘗試了很多用戶,但它不工作:
/*var xaa = users.Select(z => z.EProviders.Where(x => x.ProviderType ==
EProvider.EnumProviderType.Facebook).Select(x => x.Ip).Zip(z);*/
/*var a = users.Select(x => x.EProviders.Where(y => y.ProviderType ==
EProvider.EnumProviderType.Facebook));*/
/*
var outra = facebooks.Where(x=>
var a = from i in users
where i.EProviders != null && i.EProviders.Any(j => j.ProviderType ==
EProvider.EnumProviderType.Facebook)
from j in i.EProviders
join k in facebooks on j.Ip equals k.id
select k;
var b = facebooks.Except(a);
*/
任何幫助將不勝感激。
您還沒有涉及到EProvider對象EFacebook對象及其ID值和它們的ID值,但隨後從「現在怎麼解釋,我需要..「段落似乎我們要推斷他們是相關的?請進一步解釋或編輯問題的清晰度。 – 2012-04-12 16:09:17
我覺得現在好多了。英語這不是我的第一語言,我很抱歉。 – lolol 2012-04-12 16:13:41