2014-09-29 112 views
0

我有一類與此類似,如何設置屬性值設置爲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://stackoverflow.com/questions/807797/linq-select-an-object-and-change-some-properties-without-creating-a-new-object – Anatoliy 2014-09-29 08:11:38

回答

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 }); 
相關問題