Dun*_*Luk 2 c# linq algorithm data-structures
为了解释我的问题,我用a创建了这个简化的例子BookBundle,其中包含两个Books:
public class BookBundle
{
public Book Book1 { get; }
public Book Book2 { get; }
}
Run Code Online (Sandbox Code Playgroud)
但是现在我有很多BookBundles,但我不知道Book我的库里有哪些独特的东西.为此,我创建了一个函数:
public static Book[] GetUniqueBooks(BookBundle[] bundles)
{
// Return all unique books
}
Run Code Online (Sandbox Code Playgroud)
实现此功能的最有效方法是什么?可能有一些我可以使用的Linq功能,或者我应该使用List或Dictionary跟踪我在循环时找到的哪些独特项目?哪个是最快的(最低的算法复杂度)?
您可以使用SelectMany从System.Linq.
bundles.SelectMany(b => new Book[] {b.Book1, b.Book2}).Distinct();
Run Code Online (Sandbox Code Playgroud)