我在收藏清单方面遇到了一些问题。我使用该列表来保存我从xml和textfiles收集的一些客户数据。
// 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");
}
}
我想扩展所有文件的列表,但是目前我只获得了来自最后一个文件的循环数据。
我如何处理它,它会保存所有文件中的所有数据?
亲切的问候
答案 0 :(得分:6)
当您编写cuslist= callmethode(file);
时,您会在每次迭代时重新分配列表。你需要的是这样的东西:
cuslist.AddRange(callmethode(file));
这只会将方法返回的元素添加到列表中,而不是替换整个列表。
如果方法只返回一个元素,请使用cuslist.Add
。
答案 1 :(得分:4)
HimBromBeere解释了这个问题并提供了正确答案,正如旁注:
您可以使用LINQ来简化此任务:
List<Customer> cusList = somefiles
.Where(f => some statements match)
.SelectMany(f => callmethode(f))
.ToList();