我有以下产品类别
[MyCustomAttribute ]
public class Product {
}
以及以下产品列表
var list = new List<Product>();
我想要MyCustomAttribute
中的List
。
我正在尝试:
var attributes = (MyCustomAttribute[]) list
.GetType()
.GetCustomAttributes(typeof(MyCustomAttribute ));
但这似乎不返回任何内容...
答案 0 :(得分:3)
List<T>
尚未归因于MyCustomAttribute
,但列表的项目具有:
[MyCustomAttribute(...)]
public class Product {...}
var list = new List<Product>();
...
MyCustomAttribute[] attributes = list
.Where(item => item != null)
.SelectMany(item => item.GetType().GetCustomAttributes<MyCustomAttribute>())
.ToArray();
答案 1 :(得分:1)
如果您想将脱类列表转换为基类列表,可以这样做
var attributes = list.Select(x=> (MyCustomAttribute)x);
或
var attributes = list.ConvertAll(x => (MyCustomAttribute)x);
或
var attributes = list.Cast<MyCustomAttribute>();