如何在列表中选择项目时将属性值设置为null

时间:2014-09-29 08:04:47

标签: c# algorithm linq list

我有一个像这样的课程,

class Test
{
    public int ID { get; set; }
    public string Name { get; set; }
}

我想在List中选择符合条件的项目,我还想将Name设置为结果列表的null。我不想再次循环集合来设置属性值,有没有办法在linq中选择期间设置属性值?

这是我目前的查询:

var v = from t in tests where ids.Contains(t.ID) select t;

由于

1 个答案:

答案 0 :(得分:1)

您只需将其明确地设置为null

var newTests = tests.Where(test => ids.Contains(test.ID))
                    .Select(test => { 
                                       test.Name = null; 
                                       return test;
                                    });

或者您可以投影Test的新实例:

var newTests = tests.Where(test => ids.Contains(test.ID))
                    .Select(test => new Test { ID = test.ID });