我有一個在C#命名Cluster
A類字典集羣目的:如何在自定義詞典C#添加元素
Dictionary<int, List<ClusterMember>>
而int
代表集羣ID,List<ClusterMember>>
代表成員在集羣ID和ClusterMember
是另一類。
我這裏顯示的整個代碼結構爲:
public class ClusterMember
{
public string _name { get; set; }
}
public class Cluster
{
public Dictionary<int, List<ClusterMember>> _dic { get; set; }
public Cluster(int _id, List<ClusterMember> _clusMem)
{
_dic.Add(_id, _clusMem);
}
}
,而我在這個方法中使用這些類爲:
public static List<Cluster> DP_Cluster(List<string> _customer, double _alpha)
{
var _currentClusters = 0; // current number of clusters i.e. "k"
var _memberNumber = 0; // running member number i.e. "n"
//var _dic = new Dictionary<int, List<string>>();
var _probOld = 0.0;
var _probNew = 0.0;
List<Cluster> _myClusters = new List<Cluster>();
//Cluster _cluster = new Cluster(?);
// How to Add cluster using above classes
// How to Add cluster Member using above classes
_myClusters.Add(_cluster);
//_dic.Add(_currentClusters, _customer.ElementAt(_memberNumber));
_currentClusters += 1;
for(int _i = 1; _i < _customer.Count - 1; _i++)
{
if(_i <= _currentClusters)
{
_probOld = myClusters[_i].Members.Count/((_i+1) - 1 + _alpha);
}
else
{
_probNew = _alpha/((_i+1) - 1 + _alpha);
}
if(_probNew > _probOld)
{
// Add _customer.ElementAt(_memberNumber+=1) to New Cluster
Cluster cluster = new Cluster(_currentClusters += 1);
myClusters.Add(cluster);
}
else
{
// Add _customer.ElementAt(_memberNumber+=1) to Old Cluster
}
}
return myClusters;
}
現在我怎麼在Dictionary
而_dic
對象添加在for loop
。此外我可以具有一個以上的集羣成員添加到一次以上相同_id
作爲
- 我可以添加集羣成員到
_id = 1
在一個迭代中, - 然後必須添加一個簇構件到另一個 迭代的
_id = 2
, - 那麼它可能轉向另一集羣成員添加到同一ID IE
_id = 1
和副已經RSA。
此外,它會更有意義,我如果有可能開始集羣ID與1
(不0
默認_dic
指數)的
請在這方面提供幫助!
你能證明你的'爲loop'代碼? –
我會考慮從集羣類中刪除集羣字典,因爲它應該只封裝一個集羣及其功能。也許考慮創建一個ClusterDictionary類並在其中添加用於添加集羣成員/刪除集羣成員的功能。 – sr28
@ kienct89我已經顯示了包含'for loop'的整個'method' – maliks