我是仿制药的新手,但我知道我需要使用它们来帮助保持干燥 :)
我正在尝试创建一个类,它将许多不同类型的列表转换为一个由下拉列表控件使用但无法使其工作的公共类。我在下面的方法中展示了 2 个选项来尝试这个,试图让每个选项工作(一个 foreach 循环和一个 linq),但无济于事。
private static IEnumerable<ddlOptions> GetDDLOptionsViewModel<T>(List<T> genericList, string strPropName)
{
// option A: ForEach loop
Type type = genericList.GetType();
var IdProperty = type.GetProperty("Id");
var DisplayNameProp = type.GetProperty(strPropName);
List<ddlOptions> options = new List<ddlOptions>();
foreach (var l in genericList)
{
options.Add(new ddlOptions
{
Id = IdProperty.GetValue(l, null),
DisplayName = DisplayNameProp.GetValue(l, null)
});
}
return options;
// option B - LINQ
return from l in genericList
select new ddlOptions
{
Id = l.Id,
DisplayName = l.strPropName
};
}