我正在开发一个计算某些值的C#应用程序。我需要将这些值放在x-by-x字符串数组中。如果我知道" x"例如,我知道我可以这样做:
{
"BillAddr": {
"Line1": "123 Main Street",
"City": "Mountain View",
"Country": "USA",
"CountrySubDivisionCode": "CA",
"PostalCode": "94042"
},
"Notes": "Here are other details.",
"Title": "Mr",
"GivenName": "James",
"MiddleName": "B",
"FamilyName": "King",
"Suffix": "Jr",
"FullyQualifiedName": "King Groceries",
"CompanyName": "King Groceries",
"DisplayName": "King's Groceries",
"PrimaryPhone": {
"FreeFormNumber": "(555) 555-5555"
},
"PrimaryEmailAddr": {
"Address": "jdrew@myemail.com"
}
}
不幸的是,我不知道" x"将会。有没有办法在C#中动态增长矩阵?如果是这样,怎么样?
答案 0 :(得分:3)
不,在C#数组中是静态大小。它们不能在运行时重新调整大小,除非您声明一个具有新大小的新数组,然后将旧数组中的元素复制到新数组(这取决于您的特定需求可能是否可行)。所以基本上你可以使用.NET中的一些动态列表结构,例如IList<T>
,它允许你在运行时动态地向它添加元素。当然没有奇迹,在List<T>
下,CheckChanged
将使用.NET数组来备份数据,除非它会动态地重新调整智能的大小。这种结构。
答案 1 :(得分:2)
您可以使用变量定义数组的大小,然后在运行时更改它们的值
int arrayWidth = 3;
int arrayHeight = 3;
string[,] matrix = new string[arrayWidth, arrayHeight];
然而,正如达林指出的那样,阵列无法调整大小;所以一定要保持初始化,直到确认尺寸值。