簡體   English   中英

如何使用for循環將帶編號的對象屬性設置為數組中的值?

[英]How do I set numbered object properties to values in an array with a for loop?

我想做這樣的事情:

for (var i =0; i < obj.ValueList.Count; i++)
{
  var runCode = $"oldObj.Mod{i+1} = obj.ValueList[{i}].Value;";
  // Execute runCode; then 'oldObj.Mod1 = obj.ValueList[0].Value'
}

...我只是認為最終將優於oldObj.Mod1 = obj.ValueList[0].Value 5或10或100次顯式重復。

已經做過的事情。

思考? 救命? 方向?

免責聲明 :我是C#Eval Expression的所有者

該庫允許在運行時執行動態C#代碼。 它不是免費的,但也可以輕松解決此類問題。

在線示例: https//dotnetfiddle.net/B5t9jD

var oldObj = new OldObj();

var obj = new Obj() { ValueList = new List<ObjValue>() { new ObjValue(111), new ObjValue(222), new ObjValue(333), new ObjValue(444), new ObjValue(555) }};

for (var i = 0; i < obj.ValueList.Count; i++)
{
  var runCode = Eval.Execute("oldObj.Mod" + (i+1) + " = obj.ValueList["+i+"].Value;", new { oldObj, obj});
}

FiddleHelper.Dump(oldObj);

我不確定您是否真的必須使用for循環,但是您實際上可以嘗試通過反射獲取屬性,然后設置值(請參閱: https : //stackoverflow.com/a/30475988/9709828 ),或者您可以還嘗試與LINQ一起使用,以獲取必要的oldObj屬性列表,並通過for循環設置值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM