我有一個解釋:這是否適合Linq GroupBy?
Dictionary<Project,List<User>> dictionary,
每個項目都有一組用戶。
我想檢索組織數據,使得它們都具有類似的用戶項目安排到這種數據結構:
List<Tuple<List<Project>,List<User>>>
我甚至不知道從哪裏開始。我一直在爲此奮戰數天。
我有一個解釋:這是否適合Linq GroupBy?
Dictionary<Project,List<User>> dictionary,
每個項目都有一組用戶。
我想檢索組織數據,使得它們都具有類似的用戶項目安排到這種數據結構:
List<Tuple<List<Project>,List<User>>>
我甚至不知道從哪裏開始。我一直在爲此奮戰數天。
用戶列表是你應該分組的關鍵。在GroupBy()
你可以使用像這樣的一個比較器:
public class ListComparer<T> : IEqualityComparer<List<T>>
where T : IComparable<T>
{
public bool Equals(List<T> x, List<T> y)
{
return x.OrderBy(u => u).SequenceEqual(y.OrderBy(u => u));
}
public int GetHashCode(List<T> obj)
{
return obj.GetHashCode();
}
}
BTW:比較程序是對列表而不是IEnumerables,否則每個比較比較的對象應被一遍又一遍列舉。
您可能想要關注[此主題](http://stackoverflow.com/questions/6948019/linq-implementation-of-cartesian-product-with-pruning)瞭解更強大的比較器。 –
我以前的問題很相似。答案會幫助你。 group object with equal collections
與類似用戶相同的用戶是指在其子集合中具有相同用戶的項目? – Jeroen
是的,這就是我的意思。在繼承人子集合中擁有相同用戶的項目。 – Attilah