通过标识删除常规列表中的对象
我有这样一个域类:
如何从中删除项目
? 如果是列表,我可以做到,但他应该是
, 自从我使用以来 Nhibernate 对于你的持久层。
理想情况下,我在我的域类中需要这样的方法:
但我不能使用
作为
. 是否有更优雅的方式来解决它?
</note></note></note></note>
public class DomainClass
{
public virtual string name{get;set;}
public virtual IList<note> Notes{get;set;}
}
如何从中删除项目
IList<note>
? 如果是列表,我可以做到,但他应该是
IList
, 自从我使用以来 Nhibernate 对于你的持久层。
理想情况下,我在我的域类中需要这样的方法:
public virtual void RemoveNote/int id/
{
//remove the note from the list here
List<note> notes = /List<note>/Notes
notes.RemoveAll/delegate /Note note/
{
return /note.Id = id/
}/;
}
但我不能使用
IList
作为
List
. 是否有更优雅的方式来解决它?
</note></note></note></note>
没有找到相关结果
已邀请:
6 个回复
知食
赞同来自:
裸奔
赞同来自:
!
或者...
第一的 - 最好的。
如果没有一个音符,第二个将导致例外情况
.
编辑:感谢Magnus和Rsbarro来展示我的错误。
三叔
赞同来自:
但如果你想删除许多项目,那么本机实现变成了
对于许多实现
/包括
, 我不知道该列表的行为 NHibernate/, 而且你需要写一点更多的代码来实现实现
.
来自旧答案的可能实现之一:
https://coderoad.ru/4086772/
这种实施的狡猾是 in 将保存项目移动到列表的顶部 O/n/. 然后他继续删除列表的最后一个元素/这通常是平等的 O/1/, 由于没有项目应该导航/, 所以截断变成了 o /n/ 满的。 这意味着整个算法是相等的 O /n/.
</t></t>
风见雨下
赞同来自:
. 你能和什么能做些什么:
}
如果一个 ID 不是唯一的,使用
.
</int,></note></int,>
卫东
赞同来自:
公共虚拟人
, 使用
http://en.wikipedia.org/wiki/T ... ttern
pattern 因此:
风见雨下
赞同来自:
看看这个样本:
</int></int>