C# 在循环中保存当前集合

C# 在循环中保存当前集合,c#,collections,C#,Collections,我对收集清单有一些问题。我使用该列表保存从xml和文本文件收集的一些客户数据 // First i create an instance of the list List<Customer> cusList = new List<Customer>(); // Save files String[] somefiles = Directory.GetFiles(//FromPath"); // Then i loop through some files and c

我对收集清单有一些问题。我使用该列表保存从xml和文本文件收集的一些客户数据

// First i create an instance of the list  
List<Customer> cusList = new List<Customer>();
// Save files
String[] somefiles = Directory.GetFiles(//FromPath");

// Then i loop through some files and collect data for the list
for (int i=0; i<somefiles.length; i++)
{
    if (some statements match)
    {
        // call a methode and save file data to the cuslist
        cuslist= callmethode(somefiles);
    }
    else 
    {
     System.Console.WriteLine("Do nothing");
    }
 }
我想扩展所有文件的列表,但目前我只从最后一个文件中获取循环后的数据

我如何处理它,它保存所有文件中的所有数据

当您编写cuslist=callmethodfile时,表示亲切的问候;您可以在每次迭代时重新分配列表。你需要的是这样的东西:

cuslist.AddRange(callmethode(file));
这只会将方法返回的元素添加到列表中,而不是替换整个列表

如果该方法只返回一个元素,请使用cuslist.Add。

解释了问题并提供了正确答案,只是作为旁注:

您可以使用LINQ简化此任务:

List<Customer> cusList = somefiles
    .Where(f => some statements match)
    .SelectMany(f => callmethode(f))
    .ToList();

你的伪代码真的不能帮助我们理解你想要实现什么,或者你的问题在哪里。你的文件是在列表中还是类似的东西中?如果是这样的话,您可以使用foreach循环遍历所有文件。文件迭代没有问题,唯一的问题是正确保存列表。但现在已经解决了。谢谢OP还有一个else,但它目前已被丢弃。要做到这一点,你必须重新迭代列表。@HimBromBeere:我知道,但由于他只是打印出这没有任何作用,我想他只是想指出,这一分支是一个不可操作的分支。谢谢!我把解决方案用在上面,并记住你的。谢谢!!这就是我要找的=