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

问题描述:

我有一类与此类似,如何设置属性值设置为null时,在列表中选择项目

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

我想选择列表合格的项目,我也想名称设置为空结果列表。我不想再循环集合来设置属性值,有没有办法在linq中选择期间设置属性值?

这是我当前的查询:

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

感谢

+0

看起来这个主题可以帮助http://*.com/questions/807797/linq-select-an-object-and-change-some-properties-without-creating-a-new-object – Anatoliy 2014-09-29 08:11:38

您可以简单地将它设置为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 });