您可以嘗試使用反射:
using System.Reflection;
...
private void someMethod(string myTypeString, List<Values> typeList)
{
PropertyInfo pi = typeof(Values)
.GetProperty(myTypeString,
System.Reflection.BindingFlags.Instance |
System.Reflection.BindingFlags.NonPublic | // private/internal/protected
System.Reflection.BindingFlags.Public);
// property exists, can be read and returns DateTime
if (null == pi)
return; // or throw exception
else if (!pi.CanRead)
return; // or throw exception
else if (pi.PropertyType != typeof(DateTime))
return; // or throw exception
foreach(var type in typeList
.Where(x => (DateTime) (pi.GetValue(x, null)) > DateTime.Now))
{
//do my loop
}
}
通過反射的方法。 – Oswald
在你貼的時候將不起作用。你不能有x。「myTypeString」。你可以做這樣的事情(x => DataTime.Parse(x.myTypeString)> DataTime.Now) – jdweng
爲什麼不重新設計接收「謂詞」的方法呢?您不需要反射,只需發送要應用的表達式即可。 –
jorgonor