有没有办法使用LINQ执行以下操作?
foreach (var c in collection)
{
c.PropertyToSet = value;
}
Run Code Online (Sandbox Code Playgroud)
为了澄清,我想迭代集合中的每个对象,然后更新每个对象的属性.
我的用例是我在博客文章中有一堆评论,我想在博客文章中迭代每个评论,并将博客帖子上的日期时间设置为+10小时.我可以在SQL中完成它,但我想将它保留在业务层中.
我有以下查询:
drivers.Select(d => { d.id = 0; d.updated = DateTime.Now; return d; }).ToList();
Run Code Online (Sandbox Code Playgroud)
drivers是一个List,它带有不同的id和更新的值,因此我在更改Select中的值,但这是正确的方法.我已经知道我没有给司机重新分配司机,因为Resharper抱怨它,所以我想如果是这样会更好:
drivers = drivers.Select(d => { d.id = 0; d.updated = DateTime.Now; return d; }).ToList();
Run Code Online (Sandbox Code Playgroud)
但这仍然是某人应该为驱动程序列表中的每个元素分配新值的方式吗?
我有以下代码将myCar对象列表转换为来自第三方Web服务的Car对象Array,以便我可以将汽车传递给第三方Web服务:
var cars = new Car[myCars.Count];
var count = 0;
foreach (var myCar in myCars)
{
cars[count] = new Car
{
Id = myCar.Id,
Manufacturer = myCar.Manufacturer,
Model = myCar.Model
};
count++;
}
return cars;
Run Code Online (Sandbox Code Playgroud)
请注意,因为我的myCar对象除了三个第三方Web服务之外还有许多其他功能,我不能做一些简单的事情,例如:
MyClass[] myArray = list.ToArray();
Run Code Online (Sandbox Code Playgroud)
代码正在按预期工作但我想知道Linq中是否有一些东西,比如Select表达式可以使这更好并减少代码?