如何将不同类型的数组(字符串、整数、字符)作为相同的格式进行操作,例如 C# 中的字符串

本文关键字:字符串 格式 操作 例如 同类型 数组 字符 整数 | 更新日期: 2023-09-27 17:56:32

我有一个对象的集合,每个对象将包含不同类型的数组(string[],int[],char[])甚至不同类型的单个值。

我想将每个数组的值作为单一格式(例如字符串)获取,并将其转换为逗号文本值。

下面是将集合对象操作为"UInt16[]"的代码

UInt16[] arrCapabilities = (UInt16[])(queryObj["Capabilities"]);
foreach (UInt16 arrValue in arrCapabilities)
{
    Console.WriteLine("Capabilities: {0}", arrValue);
}

如何将不同类型的数组(字符串、整数、字符)作为相同的格式进行操作,例如 C# 中的字符串

您可以尝试使用以下代码:

IEnumerable array = queryObj["Capabilities"] as IEnumerable;
if(array != null)
{
    foreach(var item in array)
    {
        Console.WriteLine(item.ToString());
    }
}
else
{
    Console.WriteLine(queryObj["Capabilities"].ToString());
}

可以使用 LINQ 将任何数组转换为 IEnumerable 字符串:

var myStrings = from c in arrCapabilities select c.ToString();

要扩展丹尼尔斯答案并获取您所追求的 csv 字符串:

IEnumerable array = queryObj["Capabilities"] as IEnumerable;
if(array != null)
{
     var csvString = String.Join(", ", array.Cast<object>().Select(x => x.ToString()));
     Console.WriteLine(csvString);
}
else
{
    Console.WriteLine(queryObj["Capabilities"].ToString());
}

这有帮助吗?

void WriteToConsole<T>(IEnumerable<T> items)
{
    foreach (var item in items)
        Console.WriteLine("Capabilities: " + item);
}