假设我有这个对象:
public class Foo
{
public string FirstProp {get;set;}
public string SecondProp {get;set;}
public string ThirdProp {get;set;}
}
现在我想从该对象中仅检索FirstProp和SecondProp,并将所有属性值连接成一个字符串。
我有一个解决方案,它不会是干净的imo。这是:
var foo = new Foo("test1","test2","test3");
var propertyNames = new[] {"FirstProp", "SecondProp"};
var properties = foo.GetType().GetProperties().Where(x => propertyNames.Contains(x.Name));
//Then loop through each retrieved property and concat the string
所以基本上我只是在寻找一个更清洁的解决方案,我不会依赖于字符串数组。
答案 0 :(得分:0)
var foo = new Foo(...);
var result = string.Join(",", new[]{ foo.FirstProp, foo.SecondProp });
这样就够了吗?或者你需要反思动态类型?如果是这样,还可以提供MemberExpressions来动态获取值。你在处理一组实例吗?您是否需要在辅助方法中使用所需属性的参数提取此功能?