Обрезка () список строк с помощью динамического языка запросов для создания обрезанного IQueryable <строка>

Действительно ли это возможно, или я просто пробую к пути, чрезмерно сокращают мой код?

Я думал, что это могло бы быть что-то как:

IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().All(s => s.Trim());

Но это бесполезно :(

17
задан Matt W 12 July 2010 в 15:15
поделиться

3 ответа

Я думаю, вам нужно просто:

IEnumerable<string> trimmed = untrimmedStrsArr.Select(s => s.Trim());

Если у вас есть коллекции в памяти, такие как список или массив, то вы можете работать с ними, используя методы LINQ для IEnumerable, потому что они обрабатывают данные в памяти. Queryable полезен при работе с базами данных (например, при использовании LINQ to SQL).

Вы можете найти хорошую документацию по различным методам на MSDN. Следующее должно объяснить, почему вам нужен Select вместо All:

  • All - определяет, все ли элементы последовательности удовлетворяют условию.
  • Select - Проецирует каждый элемент последовательности в новую форму.
53
ответ дан 30 November 2019 в 10:22
поделиться

All не является подходящим методом для этого. Это предикат, возвращающий true, если каждый элемент в коллекции соответствует условию, заданному в параметре. Используйте

IQueryable<string> trimmedStrs = untrimmedStrsArr.AsQueryable<string>().Select(s => s.Trim()); 
2
ответ дан 30 November 2019 в 10:22
поделиться

Этот, кажется, работал для меня:

IQueryable<string> trimmed = untrimmed.AsQueryable<string>().Select(m => m.Trim());
2
ответ дан 30 November 2019 в 10:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: