我有一个循环存储创建对象并存储它们。有 3 个类和很多代码,所以我将重点介绍: 在主类中:
public static List<TaskIDHolder> mainHolders = new List<TaskIDHolder> ();
我的循环是这样工作的:
foreach (string aDir in directories){
//Variables
string var1= "";
int var2= 0;
//Buisness Logic
//Storage
Boolean newTaskID = true;
foreach (TaskIDHolder taskIDHolder in mainHolders)
{
if (taskIDHolder.getTaskID().Equals(taskID))
{
//Add obj
File newFile = new File(var1, var2);
taskIDHolder.addFile(newFile);
newTaskID = false;
}
}
if (newTaskID)
{
//Create Holder
File newFile = new File(var1, var2);
TaskIDHolder newHolder = new TaskIDHolder(taskID, newFile);
//Add Holder
mainHolders.Add(newHolder);
}
}
现在我的其他类是 File 和 TaskIDHolder。现在我在 TaskIDHolder 中获得了同一文件的 9 个实例,而不是不同的实例。
编辑:对不起,我的问题是如何获取存储的文件对象的唯一实例。
我没有写下业务逻辑,因为它没有为问题带来洞察力。
至于这里的课程,它们是:
class File
{
public static string var1;
public static int var2;
public File(string avar1, int avar2)
{
var1 = avar1;
var2 = avar2;
}
public string getVar1()
{
return var1;
}
public int getVar2()
{
return var2;
}
}
class TaskIDHolder
{
public static List<File> files = null;
public static string taskID = "";
public TaskIDHolder(string aTaskID, File aFile)
{
taskID = aTaskID;
files = new List<File>();
files.Add(aFile);
}
public void addFile(File aFile)
{
files.Add(aFile);
}
public string getTaskID()
{
return taskID;
}
public List<File> getFiles()
{
return files;
}
}