Как использовать отличные по базам данных DB4O - PullRequest
0 голосов
/ 29 марта 2010

данные как это: файл1 файл2 аааа молоко аааа красный BBBB Box перо Cccc Rose я хочу получить такой результат: file1: аааа BBBB сссс кто может сказать мне, как сделать, используя DB4objects жду онлайн ....

1 Ответ

2 голосов
/ 30 марта 2010

Насколько я знаю, 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 в отдельный метод:

    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());
...