如何确定C#对象的大小

时间:2014-11-21 05:51:46

标签: c#

我将对象定义如下:

public class A
{
    public object Result
    {
        get
        {
            return result;
        }
        set
        {
            result = value;
        }
    }
}

然后我将一些字符串值存储在其中:

A.Result=stringArray;

这里stringArray有5个字符串值。 现在我想在其他地方使用该对象,并想知道该对象内的字符串值的长度。怎么样?

3 个答案:

答案 0 :(得分:1)

var array  = A.Result as string[];

if (array != null)
{
    Console.WriteLine(array.Length);
}

答案 1 :(得分:1)

如果您只是查找Result的长度(如果它是一个字符串),那么您可以执行以下操作。

var s = Result as string;
return s == null ? 0 : s.Length;

在输入所有内容时根据您的评论。这听起来像是你真正想要的

如果是数组:

var array = Result as string[];
return array == null ? 0 : array.Length;

或者如果你想要数组中所有项目的总长度:

var array = Result as string[];
var totalLength = 0;
foreach(var s in array)
{
    totalLength += s.Length;
}

如果您想知道字节大小,那么您需要知道编码。

var array = Result as string[];
var totalSize = 0;
foreach(var s in array)
{
    //You'll need to know the proper encoding. By default C# strings are Unicode.
    totalSize += Encoding.ASCII.GetBytes(s).Length;
}

答案 2 :(得分:0)

您可以通过将对象转换为字符串数组来获取对象的长度。

例如:

static void Main(string[] args) {

        A.Result = new string[] { "il","i","sam","sa","uo"}; //represent as stringArray

        string[] array = A.Result as string[];

        Console.WriteLine(array.Length);

        Console.Read();
}

您的对象无效,因此我重写:

public class A
{
    public static object Result { get; set; } //I change it to static so we can use A.Result;
}