Using LINQ: how to return an array from a collection of classes?

Here is the base class with TheProperty in question:

 class BasicClass { public BasicClass() { TheProperty = new Object(); Stamped = DateTime.Now; } public object TheProperty { get; set; } public DateTime Stamped { get; private set; } } 

Here is the main list:

 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; } } } 

I would like to add a class to BasicList that will return an array of elements.

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(); } 

... but how can I write this with a LINQ or Lambda query?

-2
c # lambda linq
Aug 08 '13 at 19:40
source share
1 answer
 return list.Select(p=>p.TheProperty).ToArray() 
+7
Aug 08 '13 at 19:42
source share



All Articles