我有一个带有类别名称的数组,但现在我需要为每个类别分配几个计数器。 有没有办法在C#中将我的1D阵列扩展为2D阵列?
感谢您的帮助!
编辑:
PerformanceCounterCategory[] categories;
categories = PerformanceCounterCategory.GetCategories();
string[] categoryNames = new string[categories.Length];
string[] categoryNames_en = new string[categories.Length];
for (int objX = 0; objX < categories.Length; objX++)
{
categoryNames[objX] = categories[objX].CategoryName;
}
Array.Sort(categoryNames);
for (int objX = 0; objX < categories.Length; objX++)
{
Console.WriteLine("{0,4} - {1}", objX + 1, categoryNames[objX]);
}
我的数组categoryNames包含所有类别的名称,但在每个类别中都有一些计数器,我想以某种方式分配给他们的类别...
答案 0 :(得分:0)
不幸的是,您无法使用Array.Copy,因为源和目标数组的维度不同。
此外,您无法在C#中扩展数组,因为它们是使用固定大小初始化的。
你可以做的是创建一个带有第二个dimonesion的新数组,然后复制这些值并将第二个维度设置为默认值。
void Main()
{
int[] sourceCollection = new [] {1,2,3,4,5,6,7} ;
var result = CopyArrayValues(sourceCollection, 2);
result.Dump();
}
//create a new 2d array
T[,] CopyArrayValues<T>(T[] DataSource, int SecondLength)
{
//Initialize the new array
var Target = new T[DataSource.Length, SecondLength];
//Copy values over
for (int i = 0; i < DataSource.Length; i++)
{
Target[i, 0] = DataSource[i];
}
return Target;
}
输出:
答案 1 :(得分:0)
如果你有阵列数组,你可以按照这种模式做点什么:
var c = Date.parse(b);