3

我有一个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 个项目
我想markEaxmTotalOverAll在所有 10000 个项目中将值设置为 50
但不想用循环来做,有没有办法更新它,我试过这段代码

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

但它不工作

4

3 回答 3

13

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

foreach 的不那么冗长的形式是以下ForEach方法List<T>

li.ForEach(z => z.MarksExamTotalOverAll = 50);
于 2013-11-12T12:39:40.693 回答
2

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

 List<Myclass> li = new List<Myclass>();
 Parallel.ForEach(li, l => l.MarksExamOutOfMarksTotalOverAll = 50);
于 2013-11-12T12:37:44.943 回答
1

利用List<T>.ForEach

li.ForEach(x=>x.MarksExamTotalOverAll = 50);
于 2013-11-12T12:39:20.850 回答