使用LINQ:如何从类集合返回属性数组? [英] Using LINQ: How To Return Array Of Properties from a Class Collection?
本文介绍了使用LINQ:如何从类集合返回属性数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是带有TheProperty
的基本类:
class BasicClass {
public BasicClass() {
TheProperty = new Object();
Stamped = DateTime.Now;
}
public object TheProperty { get; set; }
public DateTime Stamped { get; private set; }
}
这是基本列表:
class BasicList {
private List<BasicClass> list;
public BasicList() {
list = new List<BasicClass>();
}
public BasicClass this[object obj] {
get { return list.SingleOrDefault(o => o.TheProperty == obj); }
}
public void Add(BasicClass item) {
if (!Contains(item.TheProperty)) {
list.Add(item);
}
}
public bool Contains(object obj) {
return list.Any(o => o.TheProperty == obj); // Picked this little gem up yesterday!
}
public int Count { get { return list.Count; } }
}
我想向BasicList
添加一个类,该类将返回项目数组.
I'd like to add a class to BasicList
that will return an array of items.
我可以使用传统的C#这样写:
I could write it like this, using traditional C#:
public object[] Properties() {
var props = new List<Object>(list.Count);
foreach (var item in list) {
props.Add(item.TheProperty);
}
return props.ToArray();
}
...但是我怎么用LINQ或Lambda查询写出来呢?
推荐答案
return list.Select(p=>p.TheProperty).ToArray()
这篇关于使用LINQ:如何从类集合返回属性数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文