我有以下模型类。我想根据某些条件从AddressMatch列表中检索AddressMatches的对象。

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; }
}


我尝试了这个:

AddressMatch selectedMatchedAddress = new AddressMatch();
selectedMatchedAddress = addressMatches.AddressMatches.Where(a => a.AddressIdentifier == "cpr");


但是有错误:


  无法隐式转换类型
  'System.Collections.Generic.IEnumerable'至
  “地址匹配”。存在显式转换(您是否缺少
  投?)

最佳答案

Where返回一个可枚举的(列表)项,您希望其中只有一个。

如果要确保只有一个匹配项,可以使用此方法(如果找到多个匹配项,SingleOrDefault将给出异常):

selectedMatchedAddress = addressMatches.AddressMatches
                         .SingleOrDefault(a => a.AddressIdentifier == "cpr");


或者,如果您只想要第一个匹配项,请执行以下操作:

selectedMatchedAddress = addressMatches.AddressMatches
                         .FirstOrDefault(a => a.AddressIdentifier == "cpr");


在这两种情况下,重要的是检查selectedMatchedAddress中是否包含null

关于c# - 无法隐式转换类型'System.Collections.Generic.IEnumerable Cast错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40036989/

10-12 05:28