Say I have an entity that looks something like this simple example:
MyEntity
{
int property1;
int property2;
int property3;
}
Now ass
To Darin's point, LINQ is built for querying. I've gotten into the mindset when working with LINQ that objects being queried should be treated as immutable. However, the Select operator is also great for transformations.
So, you could solve your problem by transforming from one set to another as follows:
var result = myEntityCollection.Select(e => {
var ret = e;
e.property1 = 100;
return e; });
The items in the original collection are untouched, but the items in result will now all have property1 set to 100.
Here are two solutions that I found that worked for me.
result = result.Where(x => (x.property1 = 100) == 100).ToList();
or
result = result.Select(c => { c.property1 = 100; return c; }).ToList();
Like this:
var result = GetMyIEnumerable()
.ToList();
result.ForEach(x => x.property1 = 100);
If you have 100 properties maybe reflection would be most elegant. LINQ's for querying not updating.
In addition to Darrelk and mkedobbs, VB.NET Code:
object.list =
object.list.Select(Function(x)
x.property = If(x.property.Length > 3, x.property.Substring(0, 3), x.property)
Return x
End Function).ToList()