2016-02-08 28 views
-8

我需要計算兩個排序集合之間的整數數量,以確定樂透彩票券是否是贏家。一個排序組獲勝數字和其他ticketNumbers。我被告知有一個交叉函數,但是我找不到一個函數來實現所需的結果。理想情況下,我想要一個函數返回一個int,表示這些集合之間的公共整數數量。如何計算兩個排序集合之間的公共整數

+2

你一直在尋找什麼?您應該很輕鬆地訪問https://msdn.microsoft.com/library/bb460136.aspx。第一個例子似乎適合你的情況。 – Mark

+0

你至少可以努力搜索谷歌或堆棧溢出你自己... –

回答

3

即使沒有排序,這個工程:

IEnumerable<int> winning = winningNumbers.Intersect(ticketNumbers); 
int countOfWinningNumbers = winning.Count(); 

如果您想進一步處理它,它會更好地創建一個集合:

List<int> winningList = winning.ToList(); 
int countOfWinningNumbers = winningList.Count; 

既然你已經明確要求了SortedSet方法,使用SortedSet.IntersectWith可能更有效(O(n))但修改源集:

SortedSet<int> winningNumbers = new SortedSet<int> { 2, 3, 7 }; 
SortedSet<int> ticketNumbers = new SortedSet<int> { 1, 2, 3, 4, 5 }; 

ticketNumbers.IntersectWith(winningNumbers); // now ticketNumbers contains only 2 and 3 
+0

這完美的感謝您的幫助 –

相關問題