c# How can I define a dictionary that holds different types?

前端 未结 3 1426
旧时难觅i
旧时难觅i 2021-02-20 14:54

If have the following code. Where you see the XXX I would like to put in an array of type long[].

How can I do this and how would I fetch values from the dictionary? Do

3条回答
  •  轮回少年
    2021-02-20 15:20

    First Off:

    If you don't know the type of the value OR the key, then don't use the Generic Dictionary.

    .NET Generics are best suited for when you know the types ahead of time. .NET also provides an entire set of collections for use when you want to store a "mixed bag" of objects of different types.

    In this case, the equivalent of the Dictionary would be the HashTable.

    Check out the System.Collections (rather than System.Collections.Generic) namespace to see the rest of the options you have.

    If you know the type of the key, then what you're doing is the right way.

    Secondly:

    When you retreive the value...you're going to need to cast the object back out to its original type:

    long[] countryIds = (long[]) defaultAmbience["CountryId"];
    

    or

    // To get the first value
    long id = ((long[])defaultAmbience["CountryId"])[0];
    

提交回复
热议问题