我需要创建一个函数,它接受一个List和2个属性名称T,并返回一个满足指定接口要求和T的任何其他属性的列表。
例如
interface ITest
{
int ID {get;set};
int ParentID {get;set;};
}
Consumer有任何可转换为此接口但可能具有与接口所需属性不同的类:
public class ConsumingClass
{
public int ConsumingClassID {get;set;
public int ConsumingClassParentID {get;set;}
public string namex {get;set;}
public string namey {get;set;}
}
因此消费者需要获得满足接口要求的对象,因此他想调用如下函数:
List<ITest> getnewlist = ConvertList<ConsumingClass>(consuminglist, "ConsumingClassID", "ConsumingClassParentID");
该方法的签名如下所示:
public List<ITest> ConvertList<T>(List<T> ListBeingConverted, string IDAlias, string ParentIDAlias)
{
//code needs to return a list meeting ITest requirements plus any other properties contained in T
}
编辑:我修改了签名,以更恰当地反映我希望返回的内容。
答案 0 :(得分:1)
从ITest
派生,创建一个适应ConsumingClass
实例以符合ITest
界面的类:
class AnyObjectAsITest : ITest {
public object Object;
public string PropertyName;
public int ID {
get {
return (int)Object.GetType().GetProperty(PropertyName).GetValue(Object, null);
}
}
//...
}