我的EF模型是這樣的:ASP.NET實體框架6 HashSet或列表集合?
public class ContentStatus
{
public ContentStatus()
{
this.Contents = new List<Content>();
}
public int ContentStatusId { get; set; }
public string Name { get; set; }
public virtual ICollection<Content> Contents { get; set; }
}
不過,我也看到implementatins看起來像這樣:
public class ContentStatus
{
public ContentStatus()
{
this.Contents = new HashSet<Content>();
}
public int ContentStatusId { get; set; }
public string Name { get; set; }
public virtual ICollection<Content> Contents { get; set; }
}
這裏是DDL此對象:
CREATE TABLE [dbo].[ContentStatus] (
[ContentStatusId] INT NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
CONSTRAINT [PK_ContentStatus] PRIMARY KEY CLUSTERED ([ContentStatusId] ASC)
);
能
人告訴我應該使用哪一個,甚至是否存在差異,何時使用列表以及何時應用HashSet。
感謝
'HashSet'可以迭代。任何實現IEnumerable的類都可以實現它,並且'List'和'HashSet '都可以實現。 –
2015-11-24 10:11:31
@XavierPoinas更新了答案......上帝知道我從哪裏得到了這個想法...... – 2015-11-24 10:33:24
我認爲Hashset對插入來說會更昂貴,因爲它確保唯一性,因此必須與其他條目或至少它們的哈希進行比較,但移除成本較低(假設散列查找項目比枚舉列表快)。 – 2017-03-21 16:27:47