如何确定 C# 对象的大小
本文关键字:对象 何确定 | 更新日期: 2023-09-27 18:31:15
我定义我的对象如下:
public class A
{
public object Result
{
get
{
return result;
}
set
{
result = value;
}
}
}
然后我将一些字符串值存储在其中:
A.Result=stringArray;
这里字符串数组有 5 个字符串值。现在我想在其他地方使用该对象,并想知道该对象中字符串值的长度。如何?
如果您只是在查找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;
}
var array = A.Result as string[];
if (array != null)
{
Console.WriteLine(array.Length);
}
您可以通过将对象的长度转换为字符串数组来获取对象的长度。
例如:
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;
}