更新列表的单列而不使用Foreach循环

时间:2013-11-12 12:33:59

标签: c# linq list select

我有List

List<Myclass> li = new List<Myclass> ();

其中Myclass

public class Myclass
{
    public string ExamName { get; set; }
    public Nullable<decimal> Marks { get; set; }
    public Nullable<decimal> OutOfMarks { get; set; }
    public string GradeMarks { get; set; }
    public Nullable<decimal> markEaxmTotalOverAll { get; set; }
    public Nullable<decimal> MarksExamTotalMarksTypeWise { get; set; }
    public Nullable<decimal> MarksExamOutOfMarksTotalOverAll { get; set; }
    public Nullable<decimal> MarksExamOutOfMarksTotalMarksTypeWise { get; set; }
}

li包含近10000件商品 我想在所有10000个项目中将markEaxmTotalOverAll值设置为50 但是不想用循环来做,有没有办法更新它,我试过这个代码

li.Select(s => { s.MarksExamTotalOverAll = 50; return s; }); 

但它不起作用

3 个答案:

答案 0 :(得分:10)

正如LINQ的Q所说,LINQ的基本用法是查询,而不是更新

较简洁的foreach形式是ForEach的{​​{1}}方法:

List<T>

答案 1 :(得分:2)

尝试以并行方式运行指定任务的代码

 List<Myclass> li = new List<Myclass>();
 Parallel.ForEach(li, l => l.MarksExamOutOfMarksTotalOverAll = 50);

答案 2 :(得分:1)

使用List<T>.ForEach

li.ForEach(x=>x.MarksExamTotalOverAll = 50);