c# - 在 C# 中累积值
问题描述
我正在尝试复制一个简单的操作,即第 n 次累积一个值。所以像 value 4 take 10 times 这样的东西是:[0,4,8,12,16,20,24,28,32,36]。我究竟做错了什么?
public static IList SumValues(int value, int times)
{
List<object> sums = new List<object>();
for (int i = 0; i < times; i = i + 1)
{
while (i < times)
sums.Add(value);
}
return sums;
}
解决方案
我不知道您为什么要创建一个列表,object
其中非常清楚地int
在列表中。我已更改代码以返回 an IEnumerable<int>
,因此您可以在不实现的情况下进行迭代。考虑到这一点,您可以使代码更短一些:
public static IEnumerable<int> SumValues(int initialValue, int iterations)
{
for(int i = 0; i < iterations; i++)
{
yield return initialValue * i;
}
}
如果您在 aList<T>
或 an中需要它,Array
您可以调用适当的方法(.ToList()
或.ToArray()
):
List<int> someIntList = SumValues(4, 10).ToList();
int[] someIntArray = SumValues(4, 10).ToArray();
在这里提琴
推荐阅读
- html - 如何修改HTML表格CSS向左移动td
- auto-increment - 在 Jquery 中,如何增加所选元素的每个子元素的动画延迟时间?
- java - 没有 EnableWebMvc 的 Spring Boot 会给出 EnabledHttpMessageNotWritableException
- javascript - Web 应用程序中的桌面屏幕截图
- angular - 具有自动调整大小的多个文本区域在 ionic3 中不起作用
- google-app-engine - 通过 API 增加 Appengine 实例?
- ios - KVO keyPathsForValuesAffecting 不起作用
- python - 如何找出导致 conda 想要降级 Python 的包?
- java - java - 对象丢失自定义属性
- android - 如何实现带有透明状态栏的导航抽屉,每个片段都有单独的工具栏?