2011-05-11 135 views
1

嘿,我被困在將簡單的Linq語句從查詢語法轉換爲流暢的C#語法。我認爲這是可能的,但我需要一個提示。將LINQ語句從查詢轉換爲流暢的c#語法

from property in target.GetType().GetProperties() 
select new 
{ 
    Name = property.Name, 
    Value = property.GetValue(target, null) 
}; 

到..

var props = target.GetType().GetProperties().Select(p=>p.Name....) 

我需要Select後更改?

+1

你到底在問什麼? – driis 2011-05-11 20:16:44

+0

'....'是我的問題。對不清楚的問題抱歉。我的編輯正確 – Custodio 2011-05-11 20:33:01

回答

11
var props = target 
    .GetType() 
    .GetProperties() 
    .Select(p => new { 
     Name = p.Name, 
     Value = p.GetValue(target, null) 
}); 
+0

完美!謝謝,因爲ReSharper建議我改成:'origin.GetType()。GetProperties()。Select(p => new {p.Name,Value = p.GetValue(origin,null)});'Name = p。名字是不必要的。 – Custodio 2011-05-11 20:20:13

+1

在這種情況下確實沒有必要,但它也是在其他語法中。 :)我想也許你有一個需要它的編碼風格,例如與下面的行保持一致的外觀。 – 2011-05-11 20:24:47

1
var props = target.GetType() 
        .GetProperties() 
        .Select(p => new { 
         Name = p.Name, 
         Value = p.GetValue(target, null) 
        });