![](/img/trans.png)
[英]Getting error -> System.Linq.Enumerable+WhereSelectListIterator`2[Tdsb.Aris.Pims.Entity.PartnershipFunding,System.String]
[英]System.Linq.Enumerable+WhereSelectListIterator`2
我想通過我的MVC控制器下面創建一種XML格式:
public IHttpActionResult GetCustomerData(CustData model)
{
var XMLCustAdd = "<XML><CustAddr></CustAddr></XML>";
if (model != null)
{
XMLCustDtls = "<XML>" + string.Join("",
"<Customers>" +
"<WedAnniv>" + model.WedAnniv.ToString().Trim() + "</WedAnniv>" +
"<Locality>" + model.Locality.ToString().Trim() + "</Locality>" +
"<HomePhone>" + model.HomePhone.ToString().Trim() + "</HomePhone>" +
"<BirthDate>" + model.BirthDate.ToString().Trim() + "</BirthDate>" +
"<Town>" + model.Town.ToString().Trim() + "</Town>" +
"<Code>" + model.Code.ToString().Trim() + "</Code>" +
"<Country>" + model.Country.ToString().Trim() + "</Country>" +
"<DtOfCreation>" + model.DtOfCreation.ToString().Trim() + "</DtOfCreation>" +
"<Email>" + model.Email.ToString().Trim() + "</Email>" +
"<StreetAddr>" + model.StreetAddr.ToString().Trim() + "</StreetAddr>" +
"<IsMale>" + model.IsMale.ToString().Trim() + "</IsMale>" +
"<MobilePhone>" + model.MobilePhone.ToString().Trim() + "</MobilePhone>" +
"<Nm>" + model.Nm.ToString().Trim() + "</Nm>" +
"<PostalCd>" + model.PostalCd.ToString().Trim() + "</PostalCd>" +
"<State>" + model.State.ToString().Trim() + "</State>" +
"<AddressList>" + string.Join("", "<CustAddr>" + model.AddressList.Select(X =>
"<Addr1>" + X.Addr1.ToString().Trim() + "</Addr1>" +
"<AddressType>" + X.AddressType.ToString().Trim() + "</AddressType>" +
"<City>" + X.City.ToString().Trim() + "</City>" +
"<MobilePhone>" + X.MobilePhone.ToString().Trim() + "</MobilePhone>" +
"<Country>" + X.Country.ToString().Trim() + "</Country>" +
"<DateInsert>" + X.DateInsert.ToString().Trim() + "</DateInsert>" +
"<Code>" + X.CatCd.ToString().Trim() + "</Code>" +
"<Email>" + X.Email.ToString().Trim() + "</Email>" +
"<Contact>" + X.Nm.ToString().Trim() + "</Contact>" +
"<DefaultAddress>" + X.DefaultAddress.ToString().Trim() + "</DefaultAddress>" +
"<Locality>" + X.Locality.ToString().Trim() + "</Locality>" +
"<PostalCd>" + X.PostalCd.ToString().Trim() + "</PostalCd>" ) +
"</CustAddr>"))
+ "</AddressList>" +
"</Customers>"
+ "</XML>";
}
}
AND,XML格式如下所示:
<XML>
<Customers>
<WedAnniv></WedAnniv>
<Locality></Locality>
<HomePhone></HomePhone>
<BirthDate></BirthDate>
<City></City>
<Code></Code>
<Country></Country>
<DeviceId></DeviceId>
<DtOfCreation></DtOfCreation>
<Email></Email>
<StreetAddr></StreetAddr>
<IsActive></IsActive>
<IsGuestUser></IsGuestUser>
<IsMale></IsMale>
<LastSession></LastSession>
<LoyaltyBalance></LoyaltyBalance>
<MobilePhone></MobilePhone>
<Nm></Nm>
<PostalCd>sample string 15</PostalCd>
<ProfileImage>sample string 9</ProfileImage>
<State></State>
<AddressList>
<CustAddr>
<Addr1></Addr1>
<AddressType></AddressType>
<City></City>
<MobilePhone></MobilePhone>
<Country></Country>
<DateInsert></DateInsert>
<Code></Code>
<Email></Email>
<Contact></Contact>
<IsBillingAddress></IsBillingAddress>
<DefaultAddress></DefaultAddress>
<Lat></Lat>
<Locality></Locality>
<Long></Long>
<PostalCd></PostalCd>
<State></State>
</CustAddr>
</AddressList>
</Customers>
</XML>
和我的輸出如下:
<XML>
<Customers>
<WedAnniv></WedAnniv>
<Locality></Locality>
<HomePhone>sample string 16</HomePhone>
<BirthDate></BirthDate>
<Town></Town>
<Code></Code>
<Country>sample string 13</Country>
<DtOfCreation></DtOfCreation>
<Email></Email>
<StreetAddr>sample string 9</StreetAddr>
<IsMale></IsMale>
<MobilePhone>sample string 17</MobilePhone>
<Nm></Nm>
<PostalCd></PostalCd>
<State></State>
<AddressList>
<CustAddr>System.Linq.Enumerable+WhereSelectListIterator`2[System.String]
</CustAddr>
</AddressList>
</Customers>
</XML>
AddressList包含對象列表,而我最想讀的是上面XML中的數據和傳遞字段。 但是它顯示迭代錯誤消息,並且無法傳遞地址列表中的數據。
嘗試序列化如下代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;
namespace ConsoleApplication72
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XmlSerializer serializer = new XmlSerializer(typeof(XML));
XML xml = new XML();
xml.customers = new CustData();
xml.customers.addressList = new AddressList();
xml.customers.addressList.custAddr = new CustAddr();
StreamWriter writer = new StreamWriter(FILENAME);
serializer.Serialize(writer, xml);
writer.Flush();
writer.Close();
}
}
public class XML
{
[XmlElement("Customers")]
public CustData customers { get; set; }
}
[XmlRoot("Customers")]
public class CustData
{
public DateTime WedAnniv { get; set; }
public string Locality { get; set; }
public string HomePhone { get; set; }
public DateTime BirthDate { get; set; }
public string Town { get; set; }
public string Code { get; set; }
public string Country { get; set; }
public DateTime DtOfCreation { get; set; }
public string Email { get; set; }
public string StreetAddr { get; set; }
public Boolean IsMale { get; set; }
public string MobilePhone { get; set; }
public string Nm { get; set; }
public string PostalCd { get; set; }
public string State { get; set; }
[XmlElement("AddressList")]
public AddressList addressList { get; set; }
}
[XmlRoot("AddressList")]
public class AddressList
{
[XmlElement("CustAddr")]
public CustAddr custAddr { get; set; }
}
[XmlRoot("CustAddr")]
public class CustAddr
{
public string Addr1 { get; set; }
public string AddressType { get; set; }
public string City { get; set; }
public string MobilePhone { get; set; }
public string Country { get; set; }
public DateTime DateInsert { get; set; }
public string Code { get; set; }
public string Email { get; set; }
public string Contact { get; set; }
public Boolean IsBillingAddress { get; set; }
public string DefaultAddress { get; set; }
public double Lat { get; set; }
public string Locality { get; set; }
public double Long { get; set; }
public string PostalCd { get; set; }
public string State { get; set; }
}
}
檢查此鏈接。 它涵蓋了更多可能的方案。 Linq並非始終都立即執行,並且其中很多是在下一行代碼中的任何一行需要實際輸出時才執行。
http://stackoverflow.com/questions/217805/using-linq-to-concatenate-strings
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.