gpt4 book ai didi

c# - 如何存储混合数组数据?

转载 作者:太空狗 更新时间:2023-10-29 22:24:41 26 4
gpt4 key购买 nike

假设我有一个数组,需要存储字符串值和 double 值。我知道我可以将 double 值存储为字符串,并且只处理转换,但是是否可以使用具有两种数据类型的数组?

最佳答案

您可以使用 object[] 并进行一些类型检查。在访问 double 时你会得到一些装箱/拆箱,但无论如何这将比 double.Parse() 更快。​​

另一种方法是创建一个同时具有类型和标记的类:

class StringOrDouble
{
private double d;
private string s;
private bool isString;

StringOrDouble(double d)
{
this.d = d;
isString = false;
}

StringOrDouble(string s)
{
this.s = s;
isString = true;
}

double D
{
get
{
if (isString)
throw new InvalidOperationException("this is a string");
return d;
}
}

string S
{
get
{
if (!isString)
throw new InvalidOperationException("this is a double");
return s;
}
}
bool IsString { get { return isString; } }
}

然后创建一个 StringOrDouble 数组。这将使您免于一些类型检查和装箱,但会产生更大的内存开销。

关于c# - 如何存储混合数组数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com