我必须在任何数据结构中存储两种类型的信息,我想出了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'数据类型,那么只需要创建一个列表'' ... –