Linq - не может неявно преобразовать тип 'System.Collections.Generic.IEnumerable - PullRequest
1 голос
/ 25 декабря 2011

Я получаю следующую ошибку:

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'Munchkin.Model.PlayerProfiles.Profile'. An explicit conversion exists (are you missing a cast?)

Мой код:

Profile currentProfile;

public Profile ActiveProfile()
{
    currentProfile = new Profile();        
    return currentProfile = 
        (from profiles in xmlDoc.Element("PlayerPofiles").Element("Online").Elements("Player")
        where (string)profiles.Element("Active") == "True"
        select new Profile
        {
            Name = (string)profiles.Element("Name"),
            Sex = (string)profiles.Element("Sex"),
            Avatar = (string)profiles.Element("Avatar").Attribute("path") ?? "",
            Created = (DateTime)profiles.Element("Created"),
            Birthday = (string)profiles.Element("Birthday"),
            Wins = (string)profiles.Element("Ratio").Element("Win"),
            Losses = (string)profiles.Element("Ratio").Element("Loss"),
            Abandoned = (string)profiles.Element("Ratio").Element("Abandoned")
        });
}

1 Ответ

5 голосов
/ 25 декабря 2011
public Profile ActiveProfile()
        {
            currentProfile = new Profile();

           return currentProfile = (from profiles in xmlDoc.Element("PlayerPofiles").Element("Online").Elements("Player")
                            where (string)profiles.Element("Active") == "True"
                            select new Profile
                              {
                                  Name = (string)profiles.Element("Name"),
                                  Sex = (string)profiles.Element("Sex"),
                                  Avatar = (string)profiles.Element("Avatar").Attribute("path") ?? "",
                                  Created = (DateTime)profiles.Element("Created"),
                                  Birthday = (string)profiles.Element("Birthday"),
                                  Wins = (string)profiles.Element("Ratio").Element("Win"),
                                  Losses = (string)profiles.Element("Ratio").Element("Loss"),
                                  Abandoned = (string)profiles.Element("Ratio").Element("Abandoned")
                              }).FirstOrDefault();
        }

Поскольку вашим текущим профилем является элемент одного профиля и запрос назначает коллекцию профилей, поэтому возникает эта ошибка. Попробуйте использовать FirstOrDefault ()

...