public class Company
{
public int id { get; set; }
public int Name { get; set; }
}
List<Company> listofCompany = new List<Company>();
Run Code Online (Sandbox Code Playgroud)
这是我的公司列表集合,我想使用LINQ为Name属性赋值
listofCompany.Where(d => d.Id = 1);
Run Code Online (Sandbox Code Playgroud)
(我想要公司ID 1的名称属性)
我该如何分配它.
Ali*_*tad 105
使用Linq将是:
listOfCompany.Where(c=> c.id == 1).FirstOrDefault().Name = "Whatever Name";
Run Code Online (Sandbox Code Playgroud)
UPDATE
这可以简化为......
listOfCompany.FirstOrDefault(c => c.id == 1).Name ="Whatever Name";
对于多个项目(条件由多个项目满足):
listOfCompany.Where(c=> c.id == 1).ToList().ForEach(cc => cc.Name = "Whatever Name");
Run Code Online (Sandbox Code Playgroud)
您可以创建扩展方法:
public static IEnumerable<T> Do<T>(this IEnumerable<T> self, Action<T> action) {
foreach(var item in self) {
action(item);
yield return item;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在代码中使用它:
listofCompany.Do(d=>d.Id = 1);
listofCompany.Where(d=>d.Name.Contains("Inc")).Do(d=>d.Id = 1);
Run Code Online (Sandbox Code Playgroud)