C#for或foreach从List创建数组

时间:2017-08-21 14:23:59

标签: c# .net

循环使用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之间,也不是特定于从列表创建数组。

1 个答案:

答案 0 :(得分:4)

只需使用private void CompleteActivations() { var completed = _successfulActivations; ResetSuccessfulActivations(); foreach (var activation in completed) activation.Complete(); }

Select