我必須在任何數據結構中存儲兩種類型的信息,我想出了C#中二維數組的廢料解決方案。我必須爲存儲:替代二維數組在C#
- 數簇在
int
數據類型 - 羣集成員計數在
int
數據類型
如果我使用2D陣列如:
Int32[,] _clusterMembership = new Int32[10, 10];
但這裏的問題是:
- 我不知道總共數集羣會是?
- 我不知道會員人數每個集羣都會有嗎?
所以問題是: 如何設法將這些信息存儲在C#中?
附錄
我必須在這個方法在這裏使用的答案來自這個問題爲:
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(_currentClusters += 1);
cluster.Members.Add(new ClusterMember { Name = _customer.ElementAt(_memberNumber) });
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); // Here is an error as we defining same name for another cluster
myClusters.Add(cluster);
}
else
{
// Add _customer.ElementAt(_memberNumber+=1) to Old Cluster
}
}
return myClusters;
}
- 我應該如何更新我的方法來獲得想要的結果?
這聽起來像你真的應該有一個'Members'屬性'Cluster'數據類型,那麼只需要創建一個列表'' ... –