возвращение анонимного типа в виде списка строк linq - PullRequest
1 голос
/ 07 марта 2012

У меня один из тех дней ....

Вот мой класс:

/// <summary>
/// Represent a trimmed down version of the farms object for 
/// presenting in lists.
/// </summary>
public class PagedFarm
{
    /// <summary>
    /// Gets or sets Name.
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// Gets or sets Slug.
    /// </summary>
    public string Slug { get; set; }

    /// <summary>
    /// Gets or sets Rating.
    /// </summary>
    public int Rating { get; set; }

    /// <summary>
    /// Gets or sets City.
    /// </summary>
    public string City { get; set; }

    /// <summary>
    /// Gets or sets Crops.
    /// </summary>
    public List<string> Crops { get; set; }
}

Вот моя скудная попытка разобрать мою родительскую сущность Farm в класс PagedFarm.

    int pageNumber = page ?? 1;

    // Get a list of all the farms and hostels
    var farms =
        this.ReadOnlySession.Any<Farm>(x => x.Deleted == false).Select(
            x =>
            new PagedFarm
                {
                    Name = x.Name,
                    Slug = x.Slug,
                    Rating = x.Rating,
                    City = x.City.Name,
                    // The line below doesn't work.
                    Crops = x.Crops.Select(c => new { c.Name })
                    .OrderBy(c => c.Name)
                })
                .ToPagedList(pageNumber, this.PageSize);

Мое сообщение об ошибке:

Невозможно неявно преобразовать тип System.Linq.IOrderedEnumerable<AnonymousType#1> до System.Collections.Generic.List<string>. Явное преобразование существует (вы пропустили актерский состав?)

Пробовал литье, но без радости. Что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 07 марта 2012

Я думаю, вы, вероятно, хотите:

Crops = x.Crops.Select(c => c.Name).OrderBy(name => name).ToList()
3 голосов
/ 07 марта 2012

Попробуйте:

Crops = x.Crops.Select(crop => crop.Name) // Sequence of strings
               .OrderBy(name => name)  // Ordered sequence of strings
               .ToList() // List of strings
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...