c # в запросе памяти объектов без linq - PullRequest
0 голосов
/ 05 мая 2011

Мы все еще используем .Net Framework 2.0 / VS 2005, поэтому у меня нет LINQ. Если я не хочу использовать решение LINQ для бедняков , каковы другие альтернативы для возможности запроса в памяти пользовательских объектов в словаре?

Ответы [ 4 ]

1 голос
/ 05 мая 2011

Я не уверен, что одним из решений LINQ вашего бедняка является LINQBridge , но я использовал его в течение нескольких недель, и, похоже, он работал хорошо , прежде чем мы фактически переключились на .NET 3.5 и реальная сделка.

0 голосов
/ 05 мая 2011

Мне не было известно о делегате Predicate, похоже, это то, что я искал. Что касается контекста, к которому я обращаюсь:

Скажем, у меня есть объект X со свойствами A (имя, гарантированно уникальное) и B (возраст)

1) У меня есть серия объектов в словаре, ключи которых, скажем, Свойство A данного объекта, и, конечно, значение - это объект iself.

Теперь я хочу получить все объекты в этом словаре, которые соответствуют определенным критериям B, скажем, возраст> 20.

Я могу добавить все значения словаря в список, затем вызвать для него .FindAll, передав делегат. Я могу создать анонимного делегата для этого, но скажу, что буду использовать это много раз. Как я могу динамически указать возрастные критерии для метода делегата? Будет ли единственный выбор заключить метод Predicate в класс, а затем создать новый экземпляр этого класса с моими критериями в качестве переменной экземпляра?

0 голосов
/ 05 мая 2011

Чтобы понять, что сказал Chesso, вам нужно будет повторить цикл, как это делает LINQ ...

, например:

    static T FindFirst<T>(IEnumerable<T> col, Predicate<T> predicate)
    {
        foreach(T t in col)
        {
            if(predicate(t))
            {
                return t;
            }
        }
        return default(T);
    }
0 голосов
/ 05 мая 2011

Dictionary<T> может показаться хорошим выбором, хотя вы не предоставили много информации о том, что вы подразумеваете под «запросом». Вы просто ищете данные, основанные на некотором значении ключа? Получить общее количество предметов? Есть ли сумма или средняя на основе какого-либо условия? Вам действительно нужно дать больше информации, чтобы получить лучший ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...