2013-07-22 97 views
1

您好我正在尋找從我感興趣的元素依賴於用戶選擇的一些變量的表中獲取元素,這些變量包括單選按鈕下拉列表和選擇列表。每個變量都將決定我想從表中選擇哪些Ids。如何獲取多個交集但忽略不交集的集合

我需要能夠忽略不相交或爲空的變量。

下面是一個例子

Set A = {1,2,3,4,5} 
Set B = {2,5,6,7,8} 
Set C = {Cat, Dog} 

一個交點B交叉路口C == {}

,但我需要的答案{2,5}

有沒有從這些得到這個的一種方式設置不使用條件語句?我有很多變數,如果可能的話,我希望在一個聲明中這樣做。

感謝

+0

LINQ或SQL?你沒有指定... –

+0

Linq將是可取的,但我使用SQL數據庫,所以如果Linq不支持這一點,SQL是否可以在Linq語句中使用SQL –

+0

如果你有B = {2, 5,6,7,8,貓,狗}?你會期待什麼? – Nicolas

回答

0

我得到了這個工作,得到我需要作爲一個列表每個表的不同元素。

接下來,我創建了一個類型

的詞典列表我通過每個列表中逐個我發現了一個新的對象我把它添加到字典,每次去了。如果對象已經存在,我增加了該對象的計數值。

之後,我在字典中找到了最大值int Max。

然後我從字典中選擇匹配最大值的對象。

我本來希望做一些更乾淨的東西,但嘿它的作品。對我來說這很好,我只是在開發一個原型。

0

你會想是這樣的:

var results = 
    from x in X 
    from y in Y 
    where x == y || X.All(item => !Y.Contain(item)) 
    select x; 

的基本思路是:包括交集,如果任何存在交集如果沒有存在交集的所有項目。