无法隐式转换类型'System.Collections.Generic.IEnumerable Cast错误

Hum*_*Ali 2 c# linq collections list

我有以下模型类.我想根据某些条件AddressMatchAddressMatches列表中检索对象.

public class AddressMatchList
{
    public List<AddressMatch> AddressMatches { get; set; }
}

public class AddressMatch
{
    public string HouseRange { get; set; }
    public string HouseNumber { get; set; }
    public string StreetName { get; set; }
    public string AddressIdentifier { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

我试过这个:

AddressMatch selectedMatchedAddress = new AddressMatch();   
selectedMatchedAddress = addressMatches.AddressMatches.Where(a => a.AddressIdentifier == "cpr");
Run Code Online (Sandbox Code Playgroud)

但得到错误:

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'AddressMatch'.存在显式转换(您是否错过了演员?)

Pat*_*man 7

Where回报的项目,你想到哪里只是一个可枚举(列表).

如果你想确保只有一个匹配,你可以使用它(SingleOrDefault如果找到多个匹配项,将会给出异常):

selectedMatchedAddress = addressMatches.AddressMatches
                         .SingleOrDefault(a => a.AddressIdentifier == "cpr");
Run Code Online (Sandbox Code Playgroud)

或者如果您只想要第一个匹配的项目:

selectedMatchedAddress = addressMatches.AddressMatches
                         .FirstOrDefault(a => a.AddressIdentifier == "cpr");
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,重要的是要检查selectedMatchedAddressnull.