2011-08-14 138 views
0

我有一个对象,将填充网格通过一个复选框以删除的能力属性组标识符。问题是这些对象是由它们创建时常见的几个属性组成的。比如我在这个例子中,对象创建基于对象

public class GroupedObject 
{ 
    Name { get; set; } 
    Level { get; set; } 
    Assignment { get; set; } 
    AssignmentDate {get; set; } 
} 

当我保存GroupedObjects从GUI,我有设置不同的名称属性的多个对象,但是可以给它们相同的水平,分配和AssignmentDate。所以这三个属性使该批次具有独特性。我想知道创建一个将这三个信息分组的唯一标识符的最佳方法是什么。我对电网我有后台渲染的东西的方式沿

public class GroupedObject 
{ 
    .... 
    public int BatchId 
    { 
     var batchString = string.format("{0}{1}{2}", Level, Assignment, AssignmentDate); 
     return batchString.GetHashCode(); 
    } 
} 

行思考的东西这种方式,这样,当我在组中选择一个项目时,“批条”是选择。

是否有处理类似这样的替代/标准的方式或者是由实现。

回答

1

据我所知,没有标准做你想做什么的方式,所以几乎要实现。

我有你实现唯一的问题是一个字符串的创建 - 你也许可以做到通过获取属于复合ID的一部分,所有成员的哈希码,并从中产生一个不同的hash code更好。想法请参见this post

注:

如果性能是你的一个问题(大量绑定到网格的数据),你应该测试不同的算法,看看什么最适合你的情况。

+0

谢谢,这似乎是一个更好的解决方案 – indigo0086