我有一个具有一组属性的类,如下所示。
class CustomerInfo
{
public string Address { get; set; }
public string FirstName{ get; set; }
public string LastName{ get; set; }
public string PostCode{ get; set; }
public string Title{ get; set; }
public string Email{ get; set; }
}
我有一个名为getinfo(string Fields)
的方法,它根据参数字段将字符串字段名称作为参数,如下面的“FirstName,LastName,Title”,我的方法应该只返回带有
<CustomerInfo>
<FirstName></FirstName>
<LastName></LastName>
<Title></Title>
</CustomerInfo>
我怎样才能在c#中做到这一点?
Public List<CustomerInfo> getinfo(string Fields)
{
List<CustomerInfo> list = new List<CustomerInfo> ();
…….
return list;
}
请做好必要的事。
答案 0 :(得分:2)
你可以像这样做反射。我没有尝试编译它,但它应该非常接近。
List<CustomerInfo> inList = new List<CustomerInfo> ();
List<CustomerInfo> outList = new List<CustomerInfo> ();
string[] properties = string.split(',');
foreach(var info in inList)
{
CustomerInfo filteredInfo = new CustomerInfo();
foreach(var property in properties)
{
var pi = typeof(CustomerInfo).GetProperty(property);
pi.SetValue(filteredInfo, pi.GetValue(info, null), null);
}
outList.Add(filteredInfo);
}
return outList;