LINQ: Как конвертировать результаты запроса во время выбора? - PullRequest
1 голос
/ 05 января 2011

Возвращает список strings:

var filesizes = from fd in files
                from tag in fd.Tags
                where tag.Id == ID.FILESIZE
                select tag.Value;

Следующее не работает, но есть ли способ сделать что-то похожее, чтобы преобразовать string в int во время запроса?

var filesizes = from fd in files
                from tag in fd.Tags
                where tag.Id == ID.FILESIZE
                select new { int.Parse(tag.Value) };

Или я должен просто использовать ConvertAll, как предлагается здесь ?

Ответы [ 3 ]

5 голосов
/ 05 января 2011

вы можете сделать:

var filesizes = from fd in files
                from tag in fd.Tags
                where tag.Id == ID.FILESIZE
                select new { FileSize = int.Parse(tag.Value) };

или

var filesizes = from fd in files
                from tag in fd.Tags
                where tag.Id == ID.FILESIZE
                select int.Parse(tag.Value);
1 голос
/ 05 января 2011

Вы можете просто поставить select int.Parse(tag) в конце вместо select tag.Value:

var filesizes = from fd in files
                from tag in fd.Tags
                where tag.Id == ID.FILESIZE
                select int.Parse(tag.Value);
0 голосов
/ 05 января 2011

Зачем вам нужно заключать в целое число новый {...}?Это просто:

var filesizes = from fd in files
                from tag in fd.Tags
                where tag.Id == ID.FILESIZE
                select int.Parse(tag.Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...