在C#中创建动态大小的矩阵

时间:2016-03-04 13:56:06

标签: c#

我正在开发一个计算某些值的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#中动态增长矩阵?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:3)

不,在C#数组中是静态大小。它们不能在运行时重新调整大小,除非您声明一个具有新大小的新数组,然后将旧数组中的元素复制到新数组(这取决于您的特定需求可能是否可行)。所以基本上你可以使用.NET中的一些动态列表结构,例如IList<T>,它允许你在运行时动态地向它添加元素。当然没有奇迹,在List<T>下,CheckChanged将使用.NET数组来备份数据,除非它会动态地重新调整智能的大小。这种结构。

答案 1 :(得分:2)

您可以使用变量定义数组的大小,然后在运行时更改它们的值

int arrayWidth = 3;
int arrayHeight = 3;
string[,] matrix = new string[arrayWidth, arrayHeight]; 
然而,正如达林指出的那样,阵列无法调整大小;所以一定要保持初始化,直到确认尺寸值。