Hum*_*Ali 2 c# linq collections list
我有以下模型类.我想根据某些条件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; }
}
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'.存在显式转换(您是否错过了演员?)
该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)
在这两种情况下,重要的是要检查selectedMatchedAddress的null.