这可能是基本概念,但我无法实现。
public class ClassA
{
public String firstName { get; set; }
public String lastName { get; set; }
public int employeeID{ get; set; }
public decimal salary { get; set; }
}
data in List A = List<ClassA> :
firstName | lastName |employeeID | salary
John | Smith | 123 |$400
Emila | Johnson | 124 |$500
我想基于列表B中的数据从列表A中选择一些属性。
public class ClassB
{
public String column{ get; set; }
public String coulmnName{ get; set; }
}
data in List B = List<ClassB>
column | coulmnName
firstName | First Name
lastName | Last Name
因此,最后通过使用列表A和列表B(我需要列表B中存在的属性,并且需要将属性名称更改为列表B的columnName。)
Final data:
First Name | Last Name
John | Smith
Emila | Johnson
答案 0 :(得分:0)
尝试使用linq会很棘手,因为您不知道在编译时要选择的所有属性。
一种解决方法是捕获二维数组中的所有属性:
base64
实际的代码是:
public class Item
{
public String firstName { get; set; }
public String lastName { get; set; }
public int employeeID { get; set; }
public decimal salary { get; set; }
}
public class Filter
{
public String PropertyName { get; set; }
public String PropertyValue { get; set; }
}
private string GetPropertyValue(Item item, string propertyName)
{
return item.GetType().GetProperty(propertyName).GetValue(item, null).ToString();
}
您也可以存储有关各个属性的类型信息,但是对匿名类型执行任何在编译时没有结构的操作将非常棘手。