像这样的数据:file1 file2 aaaa milk aaaa red bbbb box bbbb pen cccc rose 我想要得到这样的结果: file1: aaaa bbbb cccc 谁能告诉我如何使用 DB4objects 在线等待....
user304084
问问题
550 次
1 回答
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-instance 传递给 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());
于 2010-03-30T11:48:41.803 回答