这样的数据: file1 file2 aaaa牛奶 aaaa红色 bbbb盒子 bbbb笔 cccc上涨 我想得到这样的结果: 文件1: AAAA BBBB CCCC 谁可以告诉我如何使用DB4objects 在线等待....
答案 0 :(得分:2)
据我所知,db4o没有直接支持'distinct'操作。但是,由于您使用的是.NET框架,因此可以对结果使用LINQ-Distinct操作。我假设你使用的是.NET 3.5和C#。当我错了时告诉我。
例如:
IObjectContainer db = // ...
var persons = (from Person p in db
select p).Distinct();
这将返回所有Person对象的不同结果。它将使用GetHashCode()和Equals() - 方法来比较对象。
如果您不想使用默认的相等比较,可以将IEqualityOperator实例传递给distinct方法:
class PersonByNameEquality : IEqualityComparer<Person>
{
public bool Equals(Person x, Person y)
{
return x.Firstname.Equals(y.Firstname);
}
public int GetHashCode(Person obj)
{
return obj.Firstname.GetHashCode();
}
}
// and then
IObjectContainer db = //...
var persons = (from Person p in db
select p).Distinct(new PersonByNameEquality());