使用不同类型的动态对象进行迭代并编辑值

时间:2017-03-28 10:03:17

标签: c#

所以我有一个返回已编译字符串的静态方法。该方法获取一个匿名对象:

var data = new {one = 12.334, two = 235, three = {23, 34, 43}};

静态方法Result应遍历每个值并用小数点小数:

Math.Round(num, 1);

但我似乎无法找到迭代匿名对象的方法。我希望对象具有动态类型,以便在写入控制台时轻松访问,但我似乎也无法迭代动态对象。我需要一种方法来舍入double类型的所有值。

public static string Result(object data)
{
    dynamic x = data;

// Iterate through each value and MathRound HERE

    string compiled = $"test1: {x.one};test2: {x.two};test3: {x.three}";

    return compiled;
}

使用动态对象的Foreach方法只会抛出此错误:

Cannot implicitly convert type '<>f__
AnonymousType0<double,int,int[]>' to 'System.Collections.IEnumerable'

使用匿名对象的foreach-method抛出了这个:

foreach statement cannot operate on variables of type 'object' because 'object'
 does not contain a public definition for 'GetEnumerator

我是C#的新学员,所以如果术语不清楚,我会道歉。有谁知道如何解决这个问题?

0 个答案:

没有答案