【发布时间】:2015-01-13 16:33:41
【问题描述】:
我目前必须在这样的列表中加载一些属性:
List<TestClass> test = new List<TestClass>(); // Loaded with data
// Get calculated values back as double[]
double[] calculatedValues = CalculateValue(test);
// Add the calculated values to the List<TestClass> test object
for (int i = 0; i < test.Count; i++)
{
test[i].Value = calculatedValues[i];
}
public int[] CalculateValue(List<TestClass> testClass)
{
int[] output = int[testClass.Count];
// Some calculation
return output;
}
public class TestClass
{
public string Name { get; set; }
public int Value { get; set; }
}
我真正想做的是这样的:
public static List<TestClass> CalculateValue(List<TestClass> testClass, string property)
{
double[] output = double[testClass.Count];
// Some calculation
// output to testClass
// like:
// testClass.property = output
// Would then be like: testClass.Value = output
return testClass;
}
我想告诉我的方法应该添加到哪个属性。 有没有可能?
编辑:假设我的 TestClass 中有 Value2、Value3、Value4 等。然后我不能硬编码我的 CalculateValue 方法以始终添加到“Value”属性。希望有意义
希望它有意义。
最好的问候
【问题讨论】:
-
你当前的代码有什么问题?
-
假设在我的 TestClass 中我有 10 个需要计算的属性。我将不得不复制+粘贴第一个代码部分 10 次。我会更好地使用底部代码部分,在那里我可以告诉方法,计算值应该添加到哪个属性。
-
然后使用
Dictionary。 -
为什么不在
CalculateValue方法中设置Value?看起来没有理由先将其填充到不同的数组中,然后将值复制过来。 -
@user1281991 你看,这些信息极大地改变了这个问题 :) 一方面,它可能更适合 Code Review,而不是 StackOverflow :)