Customerオブジェクトがあります。Customerオブジェクトには、複数のAddressオブジェクトが含まれる場合があります。
GetCity
たとえば、Customerオブジェクトにメソッドを設定したいと思います。
現在、各AddressオブジェクトにはaddressIdがあるため、linqを介してプロパティをクエリしようとしています。
以下は私のコードです(私はこの問題のためにそれを切り詰めました)
Customerオブジェクト...
public class Customer
{
private string _customerNo;
private List<CustomerAddress> _addresses = new List<CustomerAddress>();
//other members immitted from this sample
//constructor code, immitted from this sample
public List<CustomerAddress> Addresses
{
get { return _addresses; }
}
//other properties immitted from this sample
public string GetCity(string id)
{
var city = (from a in _addresses
where a.AddressID == id
select a.City).Single();
return city;
}
}
the Address Object...
public class CustomerAddress
{
private string _addressid;
private string _city;
//other members immitted from this sample
public CustomerAddress(string strAddressID, string strAddressLister, string strAddress1, string strAddress2, string strAddress3, string strCity, string strState, string strPostCode, string strCountry,
bool booDefaultAddress, string strDeliveryAddress, string strInvoiceAddress, string strPayAddress, string strVisitAddress, string strDeliveryTerms, string strShipVia, string strRouteId)
{
_addressid = strAddressID;
_addresslister = strAddressLister;
_address1 = strAddress1;
_address2 = strAddress2;
_address3 = strAddress3;
_city = strCity;
_state = strState;
_postcode = strPostCode;
_country = strCountry;
_defaultaddress = booDefaultAddress;
_deliveryaddress = strDeliveryAddress;
_invoiceaddress = strInvoiceAddress;
_payaddress = strPayAddress;
_visitaddress = strVisitAddress;
_deliveryterms = strDeliveryTerms;
_shipvia = strShipVia;
_routeid = strRouteId;
}
////////////////////////////
//CustomerAddress Properties
////////////////////////////
public string AddressID
{
get { return _addressid; }
}
public string City
{
get { return _city; }
}
//other properties immitted from this sample
}
GetCity(id)
Customerオブジェクトでメソッドを実行すると、エラーが発生します。
System.InvalidOperationException:シーケンスに要素が含まれていません
linqクエリで次のコードも試しましたが、同じ結果が得られました。
public string GetCity(string id)
{
var city = (from a in this.Addresses
where a.AddressID == id
select a.City).Single();
return city;
}
と...
public string GetCity(string id)
{
var city = (from a in this._addresses
where a.AddressID == id
select a.City).Single();
return city;
}
CustomerオブジェクトにAddressオブジェクトが含まれていることは知っていますが、メソッドを機能させる方法がわかりませんGetCity
。
どんな助けでもいただければ幸いです。重要な情報を見逃した場合はお知らせください。