2012-10-30 27 views
-1

我想分配屬性subdecision_typex_value,它是DtoReport類的一個屬性,使用新語句中的foreach循環。在新的語句中動態地分配一個屬性

這是可能的嗎?是否有意義 ?

public DtoReport Get(Report repResp) 
    return new DtoReport() 
    { 
     archivingId = repResp.archivingId.ToString(), 
     dateCreated = DateTime.Now, 

     //I'D LIKE TO DO IT THAT WAY IS IT POSSIBLE SOMEHOW ? 
     foreach(Subdecision d in repResp.decisionMatrix.subdecisions){ 
     if(d.type == "SOME VALUE"){ 
      //Dynamically assign DtoReport subdecision_typex_value Property 
      subdecision_typex_value = d.value     
     } 
     } 
     //END 

     anotherProperty = repResp.AnotherProperty 
    } 
+0

爲什麼downvote?我不明白... –

回答

1

您可以使用LINQ:

return new DtoReport() 
{ 
    archivingId = repResp.archivingId.ToString(), 
    dateCreated = DateTime.Now, 
    subdecision_typex_value = repResp.decisionMatrix.subdecisions 
          .Where(d => d.type == "SOME VALUE") 
          .Select(d => d.value) 
          .FirstOrDefault(), 
    anotherProperty = repResp.AnotherProperty 
} 

請注意,你的做法很可能不會是什麼是應該做的。你列舉了所有的次級決定,然後你用type=="SOME VALUE"取最後一個值。我假設你想採取這種類型的第一個值,對嗎?

+0

感謝您的回答!我沒有想到我可以使用linq。我也不明白downvote,你有什麼想法,爲什麼我已經downvoted?這個問題是如此明顯或已經問過嗎? –

+0

「我沒發現我可以使用linq」意味着它不適合你?我不知道爲什麼有人低估了你的答案,也許是因爲它「不起作用」_不是對編譯器警告或whatelse的很好的描述。這裏有一些信息如何改善問題:http://tinyurl.com/so-hints –

+0

是的,它的工作!謝謝 !我只是試了一下。此外,我剛剛編輯的問題,以消除「不工作」的部分,這是我承認不適合。 –