循环使用List的最优雅方法是什么,在每个元素上执行某些操作并从这些项创建数组?
这两个解决方案都可以达到目的,但是使用其中一个是有利有弊还是有更优雅的方式在C#中实现这个目标?
示例1:
public void SomeFunc(List<Person> lst)
{
PersonPrivate[] arr = new PersonPrivate[lst.Count];
int idx = 0;
lst.ForEach(x =>
{
PersonPrivate p = new PersonPrivate(convert(p.name), convert(p.lastname));
arr[idx] = p;
idx++;
}
SavePerson(arr);
}
示例2:
public void SomeFunc(List<Person> lst)
{
PersonPrivate[] arr = new PersonPrivate[lst.Count];
for (int i = 0; i < lst.Count; i++)
{
PersonPrivate p = new PersonPrivate(convert(p.name), convert(p.lastname));
arr[i] = p;
}
SavePerson(arr);
}
编辑:我不相信这个问题与标记为重复的问题完全相同。虽然那个也提供了有用的信息,但是比较不在for和foreach之间,也不是特定于从列表创建数组。
答案 0 :(得分:4)
只需使用private void CompleteActivations()
{
var completed = _successfulActivations;
ResetSuccessfulActivations();
foreach (var activation in completed)
activation.Complete();
}
。
Select