我不知道我是怎樣,但幾個星期現在用的是HashSet<myObject>
收集主要字符串成員,因爲我真的,雖然它的內部採用的是內置的方法,因爲字典,以避免重複在數據的非KVP格式項目(單柱)遍歷字符串建設一個獨特鮮明收集的數據對象
我的方案是:
HashSet<myHddFolderPaths> UniqColleciton = new HashSet<myHddFolderPtahs>
int countRounds=0;
void addToCollection()
{
for(int i=0, i < UniqColleciton.Count; i++)
{
add some items to UniqColleciton via Directory.GetDirectories();
}
if(countRounds++ < Limit)
addToCollection()
}
這對於DIR-步行者的模式我建立,這是一個場景時的遞歸只是一個例子相同的數據無法避免,所以我不記得我在哪裏讀過它,並認爲,通過簡單地使用HashSet<T>
會「只是照顧生意」
我沒有想到它會允許重複的選項,但在這個項目中,我把它放到一個測試,這確實讓我吃驚添加現有項目 所以我解決辦法是:
Dictionary<string, int> fiterAccesDeniedPaths = new Dictionary<string, int>();
Dictionary<string, int> fiterAccesiblePaths = new Dictionary<string, int>();
if (this.fiterAccesDeniedPaths.ContainsKey(e.Message)) continue;
if (this.fiterAccessiblePaths.ContainsKey(object.stringPathMember)) continue;
add to filters ; UniqColleciton.Add(myHddFolderPaths);
是有acomplishing這項任務更好/更有效的方法?
public class FolderPath
{
public string DriveL { get; set; }
public string FolderLevel { get; set; }
public string Path { get; set; }
public int Fsize { get; set; }
}
public class GenericUniqCollectionM<T> : HashSet<T>
{
public GenericUniqCollectionM():base()
{
}
}
什麼是myHddFolderPaths?我想你自己的班級可以發佈代碼嗎? –
@IvanStoev肯定給我一分鐘。 –
@IvanStoev是否需要在我的對象或集合上實現它,現在我將爲'MyUniqCollection' –