We help IT Professionals succeed at work.

Can this LINQ+foreach loop be converted to LINQ?

deleyd used Ask the Experts™
Can the following be refactored to a single LINQ statement?
var result = 
    from a in listA
    from b in listA
    where a != b
    select new C(a,b);

var newResultList = new List<C>();

foreach (C c in result)
    if (c.Sometest()) { newResultList.Add(c); }

Open in new window

I'm looking for a way in a LINQ statement to create a new instance of a class C so I can then test by calling c.Sometest() which returns a Boolean, and that determines if the element gets filtered out or left in the collection.

Is that possible?
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Try this;

var result = (from a in listA from b in listA where a != b select new C(a,b)).Where( c => c.SomeTest());
deleydSoftware Engineer


Perfect thank you!