2017-04-10 64 views
0

我有两个可观察的集合,一个是fullteam另一个是matchdayteam。是否可以比较它们,并将fullteam上的任何不同条目添加到另一个可观察集合?比较两个可观察的集合并添加到第三个?

+2

参见[Enumerable.Except](https://msdn.microsoft.com/en-我们/库/ bb300779.aspx)。 – Romoku

回答

1

目前的答案是接近,但没有雪茄。我完全回答在第一个答案的评论的问题,但认为我会把在这里为更多的知名度:

var fullteam = new ObservableCollection<string> { "John", "Mike", "Steve" }; 
var matchdayteam = new ObservableCollection<string> { "Peter", "Mike", "Jacob" }; 
var combined = new ObservableCollection<string>(fullteam.Union(matchdayteam)); 

// combined = John, Mike, Steve, Peter, Jacob 
+0

正是我所渴望的,只是为了看看我是否可以在我的代码中实现它! –

0

不能完全确定我明白你的意思,但我相信你可以使用WHERE语句,如:

var x = (ObservableCollection<string>) fullteam.Where(i => !matchdayteam.Contains(i)); 

像这样:

var fullteam = new ObservableCollection<string>(); 
var matchdayteam = new ObservableCollection<string>(); 

fullteam.Add("one"); 
fullteam.Add("two"); 
matchdayteam.Add("one"); 

var x = (ObservableCollection<string>) fullteam.Where(i => !matchdayteam.Contains(i)); 

这应该给你X仅包含的东西在fullteam这是不是在matchdayteam

+1

您需要创建一个新的'ObservableCollection(string)'。您不能将'IEnumerable(string)'强制转换为'ObservableCollection(string)'。 – Romoku

+0

算法的顺序是'n^2',这可能并不理想 –

+0

@Romoku我试过了,它的工作原理? – Scheme