позднее связывание в linq - PullRequest
       4

позднее связывание в linq

3 голосов
/ 26 августа 2010

У меня есть простой запрос LINQ, который идет против коллекции.

   Dim oList = From w In Os
                Order By w.ClassTitle Descending
        Select w

Что я хотел бы сделать, так это перейти к этому, будь то нисходящий или восходящий.Я не уверен, как это сделать.

Кроме того, если бы у меня здесь было предложение where .. скажем

where w.ClassTitle = "Test"

Как я могу выполнить «Тест», чтобы я мог передать его в запрос LINQ.

Спасибо, Шеннон

Ответы [ 2 ]

1 голос
/ 26 августа 2010

Я не думаю, что вы можете передать это "в" этот запрос, однако вы можете сделать обычный запрос

var oList = from w in Os
            select w

Тогда, когда пользователь предпринимает какие-то действия, вы можете просто сделать заказ после этого факта.

oList.OrderBy(o => o.ClassTitle)

или

oList.OrderByDescending(o => o.ClassTitle)

UPDATE:

Что касается позднего связывания, то вы можете написать метод, который будет выполнять предложение Where. Возможно, использование метода расширения может работать. Я больше знаком с C #, поэтому мой синтаксис может быть немного не так

public static IEnumerable<Os> ExecuteWhere (this Table<Os> table, Expression<Func<Os, bool>> predicate)
{
    return table.AsQueryable<Os>().Where(predicate);
}

Тогда назвать это так:

oList.ExecuteWhere(a => a.ClassTitle == "Test")
0 голосов
/ 26 августа 2010

Использовать синтаксис делегирования.Например;

Dim oList = Os.Where(....).OrderBy(...)...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...