0

次のようなデータ: file1 file2 aaaa milk aaaa red bbbb box bbbb pen cccc rose 次のような結果を取得したい: file1: aaaa bbbb cccc オンラインで待機中の DB4objects の使用方法を教えてくれる人....

4

1 に答える 1

2

私の知る限り、db4oは「個別の」操作を直接サポートしていません。ただし、.NET-frameworkを使用しているため、結果に対して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 に答える