我有一个像这样的课程,
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;
由于
答案 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 });